<?php
//PDO链接mysql
//dsn三种写法:
//dsn01
$dsn = 'mysql:host=localhost;dbname=mysql';
//$dsn = 'mysql:host=localhost;dbname=mysql[;port=3306;charset=UTF8]';
/** dsn02
$dsn = 'uri:file://C:\xampp\htdocs\pdo\config.txt';
config.txt :mysql:host=localhost;dbname=mysql
linux and windows are feasible
$dsn = 'uri:file:///home/pdo/config.txt';
*/
/** dsn03
$dsn = 'mydb';
php.ini里添加 : pdo.dsn.mydb='mysql:host=localhost;dbname=mysql'
*/
$user = 'root';
$pwd = '';
//如果试图连接到请求的数据库失败,则 PDO::__construct() 抛出一个 PDO异常(PDOException) 。
try{
$link = new PDO($dsn,$user,$pwd);
}catch(PDOException $e){
echo 'Connection failed:'.$e->getMessage();
}
$userSet = $link->query('select * from user');
print_r($userSet);
<?PHP
//事务
//开始一个事务,关闭自动提交
$dbh -> beginTransaction ();
/* do something */
if(true){
/* 提交更改 */
$dbh -> commit ();
}else{
/* 识别出错误并回滚更改 */
$dbh -> rollBack ();
}
/* 数据库连接现在返回到自动提交模式 */
/** 注
包括 MySQL 在内的一些数据库, 当在一个事务内有类似删除或创建数据表等 DDL 语句时,
会自动导致一个隐式地提交。隐式地提交将无法回滚此事务范围内的任何更改。
更多见http://dev.mysql.com/doc/refman/5.0/en/implicit-commit.html
*/
<?php
/**
预处理语句 PDOStatement 类
PDO类返回PDOStatement实例的方法
public PDOStatement prepare ( string $statement [, array $driver_options = array() ] )
public PDOStatement query ( string $statement )
*/
//bindParam 与 bindValue的区别?
/* 使用 INOUT 参数调用一个存储过程
使用 PDO::PARAM_* 常量明确地指定参数的类型。
要从一个存储过程中返回一个 INOUT 参数,
需要为 data_type 参数使用按位或操作符去设置 PDO::PARAM_INPUT_OUTPUT 位。
*/
$colour = 'red' ;
$sth = $dbh -> prepare ( 'CALL puree_fruit(?)' );
$sth -> bindParam ( 1 , $colour , PDO :: PARAM_STR | PDO :: PARAM_INPUT_OUTPUT , 12 );
$sth -> execute ();
print( "After pureeing fruit, the colour is: $colour " );
<?php
PDOException extends RuntimeException {
/* 属性 */
public array $errorInfo ;
protected string $message ;
protected string $code ;
/* 继承的方法 */
final public string Exception::getMessage ( void )
final public Exception Exception::getPrevious ( void )
final public int Exception::getCode ( void )
final public string Exception::getFile ( void )
final public int Exception::getLine ( void )
final public array Exception::getTrace ( void )
final public string Exception::getTraceAsString ( void )
public string Exception::__toString ( void )
final private void Exception::__clone ( void )
}