一 代码
<!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_WARNING捕获SQL中的错误</title> <style type="text/css"> <!-- body,td,th { font-size: 12px; } --> </style></head> <body> <table id="__01" width="464" height="336" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="3"> <img src="images/mysql_01.gif" width="464" height="139" alt=""></td> </tr> <tr> <td> <img src="images/mysql_02.gif" width="78" height="136" alt=""></td> <td width="312" height="136" valign="top"><table width="310" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="30" align="center"><strong>ID</strong></td> <td align="center"><strong>PDO</strong></td> <td align="center"><strong>数据库</strong></td> <td align="center"><strong>时间</strong></td> </tr> <?php $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_WARNING); //设置为警告模式 $query="select * from tb_pdo_mysqls"; //定义SQL语句 $result=$pdo->prepare($query); //准备查询语句 $result->execute(); //执行查询语句,并返回结果集 while($res=$result->fetch(PDO::FETCH_ASSOC)){ //while循环输出查询结果集,并且设置结果集的为关联索引 ?> <tr> <td height="22" align="center" valign="middle"><?php echo $res['id'];?></td> <td align="center" valign="middle"><?php echo $res['pdo_type'];?></td> <td align="center" valign="middle"><?php echo $res['database_name'];?></td> <td align="center" valign="middle"><?php echo $res['dates'];?></td> </tr> <?php } } catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>"); } ?> </table></td> <td> <img src="images/mysql_04.jpg" width="74" height="136" alt=""></td> </tr> <tr> <td colspan="3"> <img src="images/mysql_05.gif" width="464" height="61" alt=""></td> </tr> </table> </body> </html>
二 运行结果
相关推荐
首先,静默模式下,PDO不会对执行的SQL语句错误抛出异常或生成错误消息,它仅仅通过PDOStatement对象的errorCode和errorInfo方法来返回错误代码和详细信息。这要求开发者手动检查这些属性来发现和处理错误。例如: ...
通过设置PDO的错误模式为异常(PDO::ERRMODE_EXCEPTION),可以捕获数据库操作中发生的错误。 ```php try { $result = $pdo->query("SELECT * FROM non_existent_table"); } catch (PDOException $e) { echo ...
2. 设置属性:可以使用setAttribute方法设置PDO对象的属性,例如设置长连接、错误处理模式等。 ``` $pdo->setAttribute(PDO::ATTR_PERSISTENT, true); ``` 3. 执行数据库操作:可以使用query方法执行SELECT语句,...
1. **参数绑定**:为了进一步增强安全性,应使用参数绑定而不是直接在SQL语句中拼接变量值。 2. **错误处理**:示例中的代码未包含错误处理逻辑。在生产环境中,应捕获并妥善处理可能发生的任何异常。 3. **资源管理...
- 使用PDO的异常处理模式,通过设置`PDO::ATTR_ERRMODE`为`PDO::ERRMODE_EXCEPTION`,使所有数据库错误抛出异常。 - 自定义错误处理函数,捕获并处理异常。 3. **查询操作**: - `query()` 方法:执行简单的SQL...
- 错误处理:在开发过程中应考虑到错误处理机制,比如捕获并处理异常,确保程序健壮性。 - 性能优化:在循环获取多个结果集时,注意资源消耗,尤其是内存占用,合理优化资源使用。 - 安全性:确保传递给存储过程的...
PDO提供`query()`和`exec()`方法来执行SQL语句。`query()`返回结果集,适合查询操作;`exec()`用于非查询操作,如INSERT, UPDATE, DELETE,它返回受影响的行数。 3. **预处理语句与参数绑定** 预处理语句可以防止...
通过`setAttribute`方法,我们设置了错误处理模式为异常,这有助于在发生错误时捕获并处理。 测试例子通常包含创建、查询、更新和删除操作,确保所有基础功能都能正常工作。例如,你可以创建一个简单的查询来验证...
错误处理是应用程序中重要的部分,通过设置PDO的错误模式为异常模式(ERRMODE_EXCEPTION),当发生错误时,程序会抛出异常,便于开发者捕获和处理。这比传统的错误返回值更为直观和安全。 #### 8. 结构设计 本文...
2. **处理异常**:为了捕获可能发生的错误,可以开启PDO的异常模式,通过设置`PDO::ATTR_ERRMODE`属性为`PDO::ERRMODE_EXCEPTION`。这样,当发生错误时,会抛出一个异常。 3. **执行SQL查询**:PDO提供了`query()`...
- 错误处理:通过`sqlsrv_errors()`或PDO的异常机制捕获和处理可能出现的错误。 - SQL语句编写:遵循SQL标准,避免使用可能导致性能下降的子查询和不安全的动态SQL。 - 安全性:始终使用参数化查询,避免SQL注入。 -...
4. **查询与操作**:ThinkPHP5提供了一系列的数据库操作方法,如`select()`, `insert()`, `update()`, `delete()`等,使得SQL语句的编写更加简洁。例如,执行一条简单的查询: ```php $result = Db::connect('...
3. 错误处理:PDO提供了统一的错误处理机制,可以捕获和处理数据库操作中的异常。 4. 支持事务:PDO支持事务处理,确保数据的一致性和完整性。 综上所述,"php_pdo_sqlsrv_54_nts"是PHP 5.4非线程安全版本的PDO SQL...
4. 兼容性层:对于不同的数据库系统,SQL连接器需要提供相应的适配,以确保标准SQL语句可以在多种环境中运行。 二、常见的SQL连接器类型 1. JDBC(Java Database Connectivity):Java平台的标准数据库连接方式,...
4. **执行SQL语句**:使用`prepare()`准备SQL语句,`execute()`执行语句,可结合`bindParam()`或`bindValue()`绑定参数。 5. **处理结果集**:通过`fetch()`或`fetchAll()`方法获取和处理查询结果。 6. **事务处理...
- 使用`prepare`方法准备SQL语句。 - 调用`execute`方法执行SQL。 - 使用`fetchAll`方法获取所有行作为数组返回。 ##### 2. 更新操作 `exec_sqlite`方法用于执行更新、插入或删除操作: ```php function exec_...
在这个例子中,`$email`和`$status`是来自用户输入的变量,它们被安全地绑定到预编译的SQL语句中。 3. **登录验证** 在登录过程中,通常需要检查用户提供的用户名(通常是电子邮件)和密码是否匹配数据库中的记录...
这里的`exec()`方法用于执行非查询的SQL语句,返回受影响的行数。 2. **修改**:同样使用`exec()`执行SQL更新语句。 ```php $sql = "update buyer set username='ff123' where id=3"; $res = $pdo->exec($sql); ...
- **错误处理**: 可以选择使用异常模式或错误模式来进行错误处理。 #### 五、PDO支持的数据库驱动程序 - **PDO_DBLIB**: 支持FreeTDS/Microsoft SQL Server/Sybase。 - **PDO_FIREBIRD**: 支持Firebird/Interbase ...