博客列表 >从数据库取值20190925

从数据库取值20190925

庆选的博客
庆选的博客原创
2019年09月29日 14:45:39644浏览

利用数据库替换原来写在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);  可以正常获取打印。



声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议