PDO连接数据库。
上一篇文章向您介绍了“PHP数据库如何使用PDO连接到数据库”。在PHP中,它详细介绍了如何通过PDO连接到数据库。本文让您继续了解如何使用PDO在PHP中执行SQL语句。希望能帮到你!
在前面的文章中,我们学习了PHP如何通过PDO连接到数据库,以及如何仅通过执行SQL语句来连接到数据库。对于PDO,有三种方法可以执行SQL语句:exec()、query(),以及prepare()和execute()。那我们一起来看看。
Exec()方法。
当执行这些SQL语句时,例如INSERT、UPDATE和DELETE,我们可以在PDO对象中使用exec()方法,在PDO对象中使用exec()。成功执行此方法后,返回的结果是受影响的行数。
exec()方法的语法如下:
一个
PDO:exec(字符串$sql)。
特别说明:
为sql语句执行$sql。
exec()方法没有从SELECT查询语句中获得相应的结果。
接下来,我们尝试通过一个示例向数据库添加一段数据,如下所示:
$ DSN=' MySQL : host=127 . 0 . 0 . 1;dbname=test ';
$ user=' root
$ pwd=' root
尝试{
$pdo=newPDO($dsn,$ user);
$ SQL='插入用户(姓名、年龄、性别)值(' values ',' 21 ',' male ')';
$ RES=$ PDO-exec($ SQL);
If($res)echo“已成功添加”。$ res数据片段!’;
}捕获(PDOException $ e){ 0
Echo数据库连接失败:“”。$ e-get message();
}
输出结果:
从上面的例子中,我们可以看到我们已经通过exec()方法成功地向数据库中添加了一段数据,返回的结果是受影响的行数。如果要返回对象,可以使用query()方法。让我们看看执行SQL语句的另一种方法:query()方法。
query()方法。
通过exec()方法,在上述情况下可以返回不需要返回结果集的语句信息,而在执行SELECT查询语句时,我们需要传递query()语句。如果这种方法成功实施,叛离的国家就是PDOStatement的对象。
如果使用query()方法并想知道总行数,可以使用rowCount()方法获取PDOStatement对象。
该方法的语法格式如下(查询):
PDO:查询(字符串$sql)。
PDO:query(字符串$sql,int$PDO:FETCH_COLUMN)
字符串$sql,int$PDO:FETCH_CLASS,字符串$classname,数组$ctorargs)
PDO:query(字符串$sql,int$PDO:FETCH_INTO)
这些预防措施包括:
$sql是要执行的sql语句;其余参数用于设置语句的默认提取模式,这与调用结果对象pdostatem:3360set fetchmode()相同。
然后,我们将使用query()方法查询之前添加的数据,如下所示:
$ DSN=' MySQL : host=127 . 0 . 0 . 1;dbname=test ';
$ user=' root
$ pwd=' root
尝试{
$pdo=newPDO($dsn,$ user);
$ SQL=' select * frommuserwherename='逐一';
$res=$pdo-query($sql,PDO : fetch _ ASSOC);
print _ r($ RES);
}捕获(PDOException $ e){ 0
Echo数据库连接失败:“”。$ e-get message();
}
输出结果:
在这些方法中,使用query()和exec()有一些注意点:
Query()和exec()可以执行所有SQL语句,并且只返回不同的值。
Query()可以完成exec()的所有功能;
将select语句应用于exec()时,它总是返回0;
要查看特定的查询结果,可以使用foreach语句进行循环输出。
准备()和执行()方法。
预处理语句的方法可以使实现更加高效,这是需要迭代不同参数的时候。如果在pdostating对象中使用execute()方法,请在pdostating对象中使用execute()方法准备要执行的查询。然后,我们将看到prepare()和execute()方法。
prepare()方法具有以下语法格式:
一个
prepare(string $语句[,array$driver_options=array)
这些预防措施包括:
$语句意味着它必须是目标数据库的有效SQL语句模板;
$driver_options表示为可选参数,它是包含一个或多个键值对的数组类型,并设置返回的PDOStatement对象的属性。
execute()方法具有以下语法格式:
一个
PDOStatement:执行(array $ input _ parameters)。
这些预防措施包括:
$input_parameters在要执行的SQL语句中,只有一个元素具有与SQL语句中绑定的参数相同的编号。
一个SQL语句模板可以包含零个或多个占位符标记,这些标记的格式可以是名称(:name)或问号(),在执行时将被实际数据替换。
在同一个SQL语句中,不能同时使用命名和问号形式,只能选择其中一种参数形式。如果它是以占位符标签命名的,则标签名称必须是唯一的。
接下来,让我们看看如何使用命名参数占位符来查询指定的SQL语句,如下所示:
一个
$ DSN=' MySQL : host=127 . 0 . 0 . 1;dbname=test ';
$ user=' root
$ pwd=' root
尝试{
$pdo=newPDO($dsn,$ user);
$sql='SELECTname,age,SexFromUserHayage=: age ';
$ sth=$ PDO prepare($ SQL);
$ sth-execute([' : age '=11]);
$ res1=$ sth-fetchAll();
$ sth-execute(array(' : age '=14));
$ res2=$ sth-fetchAll();
“回声”
;
print _ r($ res1);
print _ r($ res2);
}捕获(PDOException $ e){ 0
Echo数据库连接失败:“”。$ e-get message();
}
输出结果:
上面的示例使用参数占位符的命名形式来查询指定的SQL语句。接下来,让我们看看如何使用问号形式的参数占位符来查询指定的SQL语句。
例子如下:
$ DSN=' MySQL : host=127 . 0 . 0 . 1;dbname=test ';
$ user=' root
$ pwd=' root
尝试{
$pdo=newPDO($dsn,$ user);
$sql='SELECTname,age,SexFromUserWheage=AnDex=';
$某物=
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/53739.html