天天看点

php PDO 方式操作数据库小结

一、连接数据库(可存于单独的 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(, $login_name); //绑定变量到第一个问号
$login_stmt->bindParam(, $login_pwd); //绑定变量到第二个问号
$login_stmt->execute(); //执行查询
           
php