PDO
- project data object
- 连接到数据库
$db=new PDO("mysql:dbname=database;host=sever","username","password")
example:
$db=new PDO("mysql:dbname=imdb;host=localhost","root","sesame")
| PDO方法 | 描述 |
| query (sqI) |
查询数据库,返回匹配行(SELECT) |
| exec (sql) |
修改数据库,返回受影响的行数 |
| getAttribute(n) , setAttribute (n) |
获取或者设置数据库连接的各种属性 |
| quote (str) |
处理过转义字符,生成可用于SQL查询的字符串 |
| errorCode 0, errorInfo0 |
获取当前数据库错误的方法 |
| beginTransartion() , commit() , inTransaction , rollBack() |
数据库事务处理方法 |
| prepare (sql) |
产生一条SQL预处理语句 |
1.查询
$db = new PDO("mysql:dbname=imdb","root","sesame");
$row = $db->query("SELECT name FROM movies WHERE name LIKE '%oo%'");
$row = $db->query("SELECT name FROM movies WHERE name='$title'");
2.删除
$db->exec("DELETE FROM movies WHERE year=1999");
3.插入
$db->exec("INSERT INTO actors(id,first_name,last_name)VALUES(15241,'Jenifer',Auster)");
避免SQL注入
<?php
$db = new PDO("mysql:dbname=imdb","root","sesame");
$title = $db->quote($_GET["movietitle"]);
$rows = $db->query("SELECT year FROM movies WHERE name=$title;");
?>
PDOSatement方法
- PDO查询方法返回的类型为PDOStatement的对象,可以用foreach遍历
| 方法 | 描述 |
| columnCount() |
结果中返回的列数 |
| fetch() |
从结果返回下一行 |
| fetchColumn(number) |
从结果返回下一列 |
| rowCount() |
查询返回的行数 |