时间:2021-07-01 10:21:17 帮助过:14人阅读
相关mysql视频教程推荐:《mysql教程》
$pdo=new PDO(); PDO::__construct(string $dsn [,string $username [,string $password [,array $driver_options]]]);
因此实例化PDO对象时需要参数。
$dsn:数据源名称,包含了请求连接到数据库的信息。
$dsn='mysql:host=127.0.0.1;port=3306;dbname=数据库名称';
前缀mysql:用于说明数据库服务器的类型。
$username:用户名.
$password:用户密码.
$driver_option:驱动选项-->对于当前数据库服务器一些特定的初始化工作。
$driver_option=array(PDO::MYSQL_ATTR_INIT_COMMAND=>'set naames utf8'); <?php $username='root'; $password='root'; $dsn='mysql:host=localhost;dbname=study;port=3306'; $driver_option=array(PDO::MYSQL_ATTR_INIT_COMMAND=>'set names utf8'); $pdo=new PDO($dsn,$username,$password,$driver_option); var_dump($pdo);
返回结果为一个对象。和mysql_connect()(返回资源resource)不同,
使用PDO对象中的query()方法。
<?php echo '<pre>'; $username='root'; $password='root'; $dsn='mysql:host=localhost;dbname=study;port=3306'; $driver_option=array(PDO::MYSQL_ATTR_INIT_COMMAND=>'set names utf8'); $pdo=new PDO($dsn,$username,$password,$driver_option); var_dump($pdo); $sql='show databases'; $result=$pdo->query($sql); var_dump($result);
此处结果与mysql_query()有所不同,mysql_query()产生的是一个结果集,而pdo由于是封装后的,在这里产生的是一个PDOStatement对象。
mysql类中使用mysql_fetch_arr();将结果集转为数组。
在PDO中可以使用fetchAll()来达到相同的功能。
用上面的结果:
$result->fetchAll();//$result是一个PDOStatement对象。
PDO对象的常用方法
errorInfo:sql执行过程失败时,产生错误信息。该信息是以数组的形式表现出来的;
errorCode:sql执行失败时,产生错误代码。
$sql='sho databases';//此处故意写错。(在已连接上数据库的前提下) if(!$result=$pdo->query($sql)){ var_dump($pdo->errorInfo()); echo '<br/>' var_dump($pdo->errorCode()); }
beginTransaction():开启事务
rollback():回滚事务
commit():提交事务
inTransaction():判断是否处于事务中
lastInsertID():最后形成的auto_increment字段的值
Exec():执行sql的方法。与query()不同,Exec()返回值为整型。表示当前执行sql所影响的记录数。
因此query()适合用于查询类:show、select、desc等。
Exec()适合用于非查询类:insert、delete、update等。
以上就是PHP中PDO的详细内容,更多请关注Gxl网其它相关文章!