PHP在PHP6之后将mysql_connect等旧的数据库操作将会被废弃,取而代之的是更加强大PDO来操作数据库
PDO是PHP5新增的
(一)启用PDO
在php.ini中找到 extension=php_pdo_mysql.dll 将这行前面的“ ; ”去掉即启用了 PHP MySQL的pdo扩展
重启Apache
(二)创建PDO对象
如果使用了自动加载 function __autoload(){} 则需要使用命名控件来防止自动加载去加载PDO类
use PDO;
$pdo=new PDO(“mysql:host=localhost;dbname=test”,‘root’,”);
使用以上代码获取PDO对象
长连接PDO对象获取方式:
new PDO(“mysql:host=localhost;dbname=test”,‘root’,”,array(PDO::ATTR_PERSISTENT => true));
(三)使用PDO对象进行增删查改
(1)query查询 适用于执行 select语句
$pdo->query(“select * from test”);
返回一个二维数组
(2)exec查询 适用于执行insert update delete语句
$pdo->exec(“delete from test where id=1”);
返回受影响行数,如果是insert 则返回auto_increment的值
(四)使用PDO进行参数绑定查询
(1)使用prepare方法获取PDO语句执行器
$executor=$pdo->prepare(“select * from test where id=?”);
(2)执行select查询 并获取查询结果
$id=1;
$executor=$pdo->prepare(“select * from test where id=?”);
$executor->bindParam(1,$id);//绑定参数到 第一个占位符 占位符索引从1开始
$executor=$pdo->execute();//执行语句
$result=$pdo->fetchALL();//关联数组+数字索引形式返回结果
如果想返回关联数组形式的结果则使用fetchALL(PDO::FETCH_ASSOC);
纯数字索引PDO::FETCH_NUM
对象索引FETCH_OBJ
默认的关联+数字索引FETCH_BOTH
使用bindParam来绑定参数 第二个值只能传入变量,如果要传入字面常量需要使用bindValue
execute()方法执行成功返回true 失败返回false
(3)执行insert查询 并获取auto_increment值
$executor=$pdo->prepare(“insert into test(name) values(?)”);
$executor=$pdo->bindValue(1,’黑皮’);
$executor->execute();
$insertId=$pdo->lastInsertId();//这里通过pdo对象来获取最后插入的id
PS:该insertId为本连接插入的最新auto_increment值 其他连接对数据库的操作不影响该次连接获取auto_increment的值
(3) 执行update、delete查询 并返回受影响的行数
$executor=$pdo->prepare(“update test set name=? where id=?”);
$executor->bindValue(1,”我叫黑皮”);
$executor->bindValue(2,1);
$executor->execute();
$rowCount=$executor->rowCount();//使用executor执行器获取此次查询受影响的行数
delete和update一样的 我就不写了~~~
共同学习,写下你的评论
评论加载中...
作者其他优质文章