一、连接数据库(可存于单独的 conn.php 文件中)
$dsn = 'mysql:dbname=db_dreamtale;host=127.0.0.1'; //连接
MySQL 数据库的 DSN
$user = 'root'; //数据库用户名
$pwd = ''; //数据库密码
$pdo = new PDO($dsn, $user, $pwd); //创建一个 PDO 对象$pdo
$pdo->query('set names utf8'); //执行 SQL 命令,设置字符集为 UTF-8
二、无参数查询
$sql="SELECT ID,post_title FROM tb_posts WHERE post_status = 'publish' AND post_type
= 'page' ORDER BY menu_order DESC, post_date DESC LIMIT 5"; //定义 SQL 命令
$page_stmt = $pdo->query($sql); //执行 SQL 查询并将结果返回给变量$page_stmt
//将变量$page_stmt 的每一行处理为数组
while($pages = $page_stmt->fetch(PDO::FETCH_ASSOC)){
echo $pages['post_title']; //显示数组中 'post_title'字段
}
三、参数化查询
1) 数组方式
$login_name = $_POST['username']; //接收数据
$login_pwd = $_POST['password']; //接收数据
//用问号作为占位符代替需要添加到 SQL 语句中的变量
$login_sql = "select * from tb_users where user_login = ? and user_pass = ? ";
$login_stmt = $pdo->prepare($login_sql); //SQL 命令预处理
$login_stmt->execute(array($login_name, $login_pwd )); //以数组的方式传递实参并执行
2)绑定变量值方式
$login_name = $_POST['username']; //接收数据
$login_pwd = $_POST['password']; //接收数据
//用问号作为占位符代替需要添加到 SQL 语句中的变量
$login_sql = "select * from tb_users where user_login = ? and user_pass = ? ";
$login_stmt = $pdo->prepare($login_sql); //SQL 命令预处理
$login_stmt->bindParam(1, $login_name); //绑定变量到第一个问号
$login_stmt->bindParam(2, $login_pwd); //绑定变量到第二个问号
$login_stmt->execute(); //执行查询