博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pdo查找mysql语句错误_PDO中捕获SQL语句中的错误——异常模式
阅读量:5741 次
发布时间:2019-06-18

本文共 2031 字,大约阅读时间需要 6 分钟。

一 代码

使用异常模式——PDO::ERRMODE_EXCEPTION捕获SQL中的错误

ID PDO 数据库 时间 操作

$dbms='mysql'; //数据库类型 ,对于开发者来说,使用不同的数据库,只要改这个,不用记住那么多的函数

$host='localhost'; //数据库主机名

$dbName='db_database15'; //使用的数据库

$user='root'; //数据库连接用户名

$pass='root'; //对应的密码

$dsn="$dbms:host=$host;dbname=$dbName";

try {

$pdo = new PDO($dsn, $user, $pass); //初始化一个PDO对象,就是创建了数据库连接对象$pdo

$query="select * from tb_pdo_mysql limit 5";//定义SQL语句

$result=$pdo->prepare($query);//准备查询语句

$result->execute();//执行查询语句,并返回结果集

while($res=$result->fetch(PDO::FETCH_ASSOC)){//while循环输出查询结果集,并且设置结果集的为关联索引

?>

<?php echo $res['id'];?> <?php echo $res['pdo_type'];?> <?php echo $res['database_name'];?> <?php echo $res['dates'];?>

}

} catch (PDOException $e) {

die ("Error!: " . $e->getMessage() . "

");

}

?>

header ( "Content-type: text/html; charset=utf-8" ); //设置文件编码格式

if($_GET['conn_id']!=""){

$dbms='mysql'; //数据库类型 ,对于开发者来说,使用不同的数据库,只要改这个,不用记住那么多的函数

$host='localhost'; //数据库主机名

$dbName='db_database15'; //使用的数据库

$user='root'; //数据库连接用户名

$pass='root'; //对应的密码

$dsn="$dbms:host=$host;dbname=$dbName";

try {

$pdo = new PDO($dsn, $user, $pass); //初始化一个PDO对象,就是创建了数据库连接对象$pdo

$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

$query="delete from tb_pdo_mysqls where Id=:id";

$result=$pdo->prepare($query);//预准备语句

$result->bindParam(':id',$_GET['conn_id']);//绑定更新的数据

$result->execute();

} catch (PDOException $e) {

echo 'PDO Exception Caught.';

echo 'Error with the database:

';

echo 'SQL Query: '.$query;

echo '

';

echo "Error: " . $e->getMessage(). "

";

echo "Code: " . $e->getCode(). "

";

echo "File: " . $e->getFile(). "

";

echo "Line: " . $e->getLine(). "

";

echo "Trace: " . $e->getTraceAsString(). "

";

echo '

';

}

}

?>

二 运行结果

PDO Exception Caught.Error with the database:SQL Query: delete from tb_pdo_mysqls where Id=:id

Error: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'db_database15.tb_pdo_mysqls' doesn't existCode: 42S02File: D:\AppServ\www\test\15\9\delete.phpLine: 16Trace: #0 D:\AppServ\www\test\15\9\delete.php(16): PDOStatement->execute()

#1 {main}

转载地址:http://bfnzx.baihongyu.com/

你可能感兴趣的文章