`
cakin24
  • 浏览: 1417322 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

PDO中捕获SQL语句中的错误——静默模式

    博客分类:
  • PHP
阅读更多

一 代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>使用默认模式——PDO::ERRMODE_SILENT捕获SQL中的错误</title>
<style type="text/css">
<!--
body,td,th {
	font-size: 12px;
	overflow:hidden;
}
-->
</style></head>
<body>
	<form id="form1" name="form1" method="post" action="index.php">	
		<table width="310" border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td height="30" align="right">类型:</td>
            <td align="left"><input name="pdo" type="text" id="pdo" size="20" /></td>
          </tr>
          <tr>
            <td height="25" align="right">数据库:</td>
            <td align="left"><input name="databases" type="text" id="databases" size="20" /></td>
          </tr>
          <tr>
            <td height="25" align="right">时间:</td>
            <td align="left"><input name="dates" type="text" id="dates" size="20" /></td>
          </tr>
          <tr>
            <td height="30" colspan="2" align="center"><input type="submit" name="Submit" value="提交" />&nbsp;&nbsp;<input type="reset" name="Submit2" value="重置" /></td>
          </tr>
		  
	<?php
if($_POST['Submit']=="提交" && $_POST['pdo']!=""){
	$dbms='mysql';     					//数据库类型 ,对于开发者来说,使用不同的数据库,只要改这个,不用记住那么多的函数
	$host='localhost'; 					//数据库主机名
	$dbName='db_database15';    		//使用的数据库
	$user='root';      					//数据库连接用户名
	$pass='root';          				//对应的密码
	$dsn="$dbms:host=$host;dbname=$dbName";
    $pdo = new PDO($dsn, $user, $pass); 	//初始化一个PDO对象,就是创建了数据库连接对象$pdo
	$query="insert into tb_pdo_mysqls(pdo_type,database_name,dates)values('".$_POST['pdo']."','".$_POST['databases']."','".$_POST['dates']."')";
	$result=$pdo->prepare($query);
	$result->execute();
	$code=$result->errorCode();
	if(empty($code)){
		echo "数据添加成功!";
	}else{
		echo '数据库错误:<br/>';
		echo 'SQL Query:'.$query;
		echo  '<pre>';
		var_dump($result->errorInfo());			
		echo '</pre>';
	}
}
		  ?>
        </table>
		</form>
</body>
</html>

 

二 运行结果

 
  • 大小: 5.3 KB
1
1
分享到:
评论

相关推荐

    php实现PDO中捕获SQL语句错误的方法

    首先,静默模式下,PDO不会对执行的SQL语句错误抛出异常或生成错误消息,它仅仅通过PDOStatement对象的errorCode和errorInfo方法来返回错误代码和详细信息。这要求开发者手动检查这些属性来发现和处理错误。例如: ...

    PDOSTARTERTEMPLATE:简单的PDO PHP语句

    默认情况下,PDO是设置为静默错误模式,但推荐使用异常模式,以便在发生错误时能立即捕获: ```php $pdo-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); ``` 5. **事务处理** PDO支持数据库事务,...

    PDO的安全处理与事物处理方法

    1. PDO::ATTR_ERRMODE 不报错误(忽略)(0):这是默认设置,当发生错误时,PDO 不会显示任何错误信息,而是静默处理。要检查错误,你需要使用 `errorCode()` 和 `errorInfo()` 方法。 2. PDO::ERRMODE_WARNING(1...

    php PDO异常处理详解

    在方式三中,如果执行SQL语句时出现错误,会抛出一个异常,然后在`catch`块中捕获并处理。 总之,通过选择合适的PDO错误模式,开发者可以更好地管理错误,提高代码的健壮性和安全性。在生产环境中,推荐使用PDO::...

    PHP中关于PDO数据访问抽象层的功能操作实例

    PDO提供了不同的错误模式,包括静默模式、警告模式和异常模式。使用`setAttribute()`方法并设置PDO::ATTR_ERRMODE属性为PDO::ERRMODE_EXCEPTION,可以将错误处理设置为异常模式,当发生错误时会抛出异常。 ```php...

    zend框架实现支持sql server的操作方法

    同时,需要设置PDO连接的错误模式为PDO::ERRMODE_EXCEPTION,以使连接在发生错误时抛出异常而不是静默失败。此外,还需要设置SQL Server特定的编码属性为PDO::SQLSRV_ATTR_ENCODING_UTF8,以确保在数据库交互过程中...

Global site tag (gtag.js) - Google Analytics