博主信息
博文 42
粉丝 0
评论 0
访问量 45482
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
从数据库取值20190925
庆选的博客
原创
807人浏览过

利用数据库替换原来写在header.php数据

处理步骤:

1、写好连接数据库文件:

实例

<?php
$db = [
  		'type'=>'mysql',
  		'host'=>'127.0.0.1',
  		'dbname'=>'chenqingxuan',
  		'username'=>'root',
  		'password'=>'cqx07231950'

  ];

  $dsn = $db['type'].':host='.$db['host'].';dbname='.$db['dbname'];

  try {
	$pdo = new PDO($dsn, $db['username'], $db['password']);
	// print_r($pdo);
} catch (PDOException $e) {
	echo '数据库报错:'.$e->getMessage();

}




?>

运行实例 »

点击 "运行实例" 按钮查看在线实例

该文件实际起左右语句:

$pdo = new PDO($dsn, $db['username'], $db['password']);

new PDO(参数1,参数2,参数3)

其中:

参数1:$dsn代表那一台计算机里哪个类型的数据库,数据库叫什么。(即定位访问数据库地址)

参数2:数据登录名

参数3:数据库登陆密码

其通过数据将$dsn拼接好。即是拼成数据库定位地址:'mysql:host=127.0.0.1;dbname=chengqingxuan'

2、header.php文件改造。引入数据库连接文件connect.php,删除原来页面数组,改为从数据库中获取

实例

<?php
	// 影视剧数组
	include __DIR__ . '/connect.php';
	$sql_movies = 'SELECT * FROM movies';
	$stm_movies = $pdo->prepare($sql_movies);
	$stm_movies -> execute();
	// print_r($stm->fetchAll(PDO::FETCH_ASSOC));
	$movies = $stm_movies->fetchAll(PDO::FETCH_ASSOC);

	$sql_category = 'SELECT * FROM category';
	$stm_category = $pdo->prepare($sql_category);
	$stm_category -> execute();
	// print_r($stm_category->fetchAll(PDO::FETCH_ASSOC));die;
	$cates = $stm_category->fetchAll(PDO::FETCH_ASSOC);

	$sql_system = 'SELECT * FROM `system` LIMIT 1';
	$stmt_system = $pdo->prepare($sql_system);
	$stmt_system->execute();
	$system = $stmt_system->fetch(PDO::FETCH_ASSOC);
	// var_dump($stmt_system->fetch(PDO::FETCH_ASSOC));die;
	var_dump($system);

	
?>

<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8">
		<link rel="stylesheet" href="css/style.css">
		<meta name="description" content="<?php echo $system['desc'] ?>">
		<meta name="keywords" content="<?php echo $system['key'] ?>">
		<title><?php echo $system['title'] ?></title>
	</head>
	<body>
		<!--头部导航-->
		<div class="header">
			<ul class="nav">
				<li><a href="index.php">首页</a></li>
				<?php foreach ($cates as $cate) : ?>
					<li><a href="list.php?cate_id=<?php echo $cate['cate_id']; ?>"><?php echo $cate['alias'] ?></a></li>
				<?php endforeach; ?>
			</ul>
		</div>

运行实例 »

点击 "运行实例" 按钮查看在线实例

获取数据过程说明:

$sql = 'SELECT * FROM movies';

此定义查询数据库条件,即是设定好访问哪个数据库,获取数据库中哪个数据。
$stm = $pdo->prepare($sql_movies);

预处理:此类似建立查询指引,此语句阶段暂没有建立联系。

可理解为:通过建立连接,准备指向访问某个数据库
$stm -> execute();

执行指引建立,则通过可访问$stm将指引到某个数据库查询数据

 $movies = $stm_movies->fetchAll(PDO::FETCH_ASSOC);

取值,将某个数据从数据库取出

取出函数有fetchAll() fetch()等 其中参数PDO::FETCH_ASSOC为查询是的类型。


实际效果:

1.png


问题1:取出值无法打印。赋值后可打印出来

$sql_system = 'SELECT * FROM `system` LIMIT 1';

$stmt_system = $pdo->prepare($sql_system);

$stmt_system->execute();

$system = $stmt_system->fetch(PDO::FETCH_ASSOC);

// var_dump($stmt_system->fetch(PDO::FETCH_ASSOC));die;

// var_dump($system);

即是:

var_dump($stmt_system->fetch(PDO::FETCH_ASSOC));无法打印值。

ar_dump($system);  可以正常获取打印。



批改状态:合格

老师批语:如果无法获取结果, 可以使用debugDumpParams()将sql语句打印出来看一下 , 就知道问题在哪了
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学