1.确认PDO开启
PDO
的开启必须在Windows环境下php 5.1以上版本中。
在自己的环境内新建 test.php文件,内容如下:
<?php
print phpinfo();
?>
运行后能看见下图,便说明已经开启成功,直接转至2。
php入门到就业线上直播课:进入学习
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API调试工具:点击使用
若无法运行则打开php.ini
配置文件,找到extension=php_pdo.dll
(配置php配置文件,开启相应扩展) 和extension=php_pdo_mysql.dll
(开启对相应数据库的扩展,以MySQL为例),去掉前面“;
”的注释,修改后的两行配置内容如下:
extension=php_pdo.dll
extension=php_pdo_mysql.dll
完成后重启apache
后即可。
2.数据库连接问题
连接到 MySQL
<?php
$dbh = new PDO('mysql:host=localhost;dbname=my_database', $user, $pass);
?>
注意:如果有任何连接错误,将抛出一个 PDOException
异常对象。
b.处理连接错误
<?phptry {
$dbh = new PDO('mysql:host=localhost;dbname=my_database', $user, $pass);
foreach($dbh->query('SELECT * from student') as $row) {
print_r($row);
}
$dbh = null;} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();}
?>
3.SQL语句本身有错误
<?php
//实例化PDO对象
$pdo = new PDO('mysql:host=localhost;port=3306;dbname=my_database','root','root');
//写操作
$sql = "delete from student"; //错误SQL
$rows = $pdo->exec($sql);
//错误判定:exec方法执行结果成功也存在返回0的情况,错误会返回false,所以要判定是否是SQL错误,需要判定结果为false
if(false === $rows){
//取出错误细信息
echo 'SQL错误:<br/>';
echo '错误代码为:' . $pdo->errorCode() . '<br/>';
echo '错误原因为:' . $pdo->errorInfo()[2];
//errorInfo返回数组,2下标代表错误具体信息
exit;
//错误不需要继续执行代码
}
?>
语句问题可以通过连接数据库
,通过cmd命令行
或者数据库可视化软件(例如Navicat、phpMyAdmin
)确认语句问题。