PDO::XXX()
意味为 PDO 类中可以使用 xxx() 方法。
例如:
PDO::__construct()
为 PDO 构造方法,使用方法为 $pdo = new PDO();
。PDO::query()
为 PDO 查询方法,使用方法为 $pdo->query($sql)
。创建 PDO 对象函数:
/**
* 创建一个表示数据库连接的 PDO 实例
* @param string $dsn 必需。一个数据库基本信息字符串,包含数据库类型、 IP 地址等。
* @param string $username [optional] 必需。数据库用户名。
* @param string $password [optional] 必需。数据库口令。
* @param array $options [optional] 可选。PDO属性设置,关联数组,利用PDO内部的常量进行设置。
*/
public function __construct ($dsn, $username = null, $password = null, $options = null) {}
$dsn
格式:
:
与后字符分隔,如 mysql:
;host=[具体 IP 地址]
,跟在驱动名字之后,如 mysql:host=localhost
。port=[端口号]
,默认为 3306
可以不写,拼凑在驱动名字后,如mysql:host=localhost;port=3306
;dbname=[数据库名]
(可以事先没有)。mysql:
后字符串结构不区分先后顺序,如 mysql:host=localhost;port=3306
或者 mysql:port=3306;host=localhost
。示例:
//利用变量保存数据来实现数据库初始化
$dbms=‘mysql‘; //数据库类型
$host=‘localhost‘; //数据库主机名
$port=‘3306‘; //数据库端口
$dbName=‘test‘; //使用的数据库
$username=‘root‘; //数据库连接用户名
$password=‘‘; //对应的密码
$dsn="$dbms:host=$host;port=$port;dbname=$dbName";
//实例化 PDO 对象
$pdo = new PDO($dsn,$username,$password);
执行 SQL 语句,返回 PDOStatement 对象,可以理解为结果集。
语法:
public PDOStatement PDO::query ( string $statement )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_COLUMN , int $colno )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_CLASS , string $classname , array $ctorargs )
public PDOStatement PDO::query ( string $statement , int $PDO::FETCH_INTO , object $object )
示例:
foreach($pdo->query("SELECT * from DBList") as $row) {
print $row[‘name‘] . "\t";
print $row[‘email‘] . "\n";
}
执行一条 SQL 语句,并返回受影响的行数。
写操作其实本质要注意的是执行SQL时可能出现的错误处理。
语法:
int PDO::exec ( string $statement )
与 PDO::query()
区别:
PDO::exec()
不会从一条 SELECT 语句中返回结果。对于在程序中只需要发出一次的 SELECT 语句,可以考虑使用 PDO::query()
。
示例:
/* 删除 FRUIT 数据表中满足条件的所有行 */
$count = $pdo->exec("DELETE FROM fruit WHERE colour = ‘red‘");
/* 返回被删除的行数 */
print("Deleted $count rows.\n");
如果是插入操作,有时候需要新增记录的自增长ID,可以通过 PDO::lastInsertId()
来获取。
$id = $pdo->lastInsertId();
设 PDO 对象为 null
即可。
$pdo = null;
获取跟数据库句柄上一次操作相关的 SQLSTATE。
语法:
mixed PDO::errorCode ( void )
示例:
if(false === $rows){
//取出错误细信息
echo ‘SQL错误:<br/>‘;
echo ‘错误代码为:‘ . $pdo->errorCode();
}
返回最后一次操作数据库的错误信息。
语法:
public array PDO::errorInfo ( void )
示例:
if(false === $rows){
//取出错误细信息
echo ‘SQL错误:<br/>‘;
echo ‘错误原因为:‘ . $pdo->errorInfo()[2];
//errorInfo返回数组,2下标代表错误具体信息
}
增加错误抑制符,抑制在初始化过程可能出现的错误。
function pdo_init () {
$pdo = @new PDO(‘mysql:host=localhost;port=3306;dbname=project‘,‘root‘,‘root‘);
......
}
原文:https://www.cnblogs.com/Yogile/p/14103817.html