本文内容其实在PHP手册中都有,而且更加的深刻全面,这里只是个人做个笔记,呵呵
首先,先实例化pdo的对象
define ( ' DB_HOST ' , ' localhost ' );
define ( ' DB_PORT ' , 3306 );
define ( ' DB_NAME ' , ' oooo ' );
define ( ' DB_CHARSET ' , ' utf8 ' );
define ( ' DB_USER ' , ' root ' );
define ( ' DB_PASSWORD ' , ' hicc ' );
$dsn = sprintf ( " mysql:host=%s;dbname=%s;port=%d;charset=%s " , DB_HOST , DB_NAME , DB_PORT , DB_CHARSET);
try {
$pdo = new PDO( $dsn , DB_USER , DB_PASSWORD);
$pdo -> query( " set names " . DB_CHARSET);
} catch (PDOException $e ){
error_log ( $e -> errorInfo());
}
注:上面的define可以用普通的变量呀,至于为什么用define,是为了有一个全局的东西。
然后:执行一语sql语句,并返回它影响的行数
$sql
=<<<
SQL
insert into atm_service (name , dep_id , product_id) values ( ' a ' , 1 , 2 ) , ( ' b ' , 2 , 3 )
SQL;
$count = $pdo -> exec ( $sql );
insert into atm_service (name , dep_id , product_id) values ( ' a ' , 1 , 2 ) , ( ' b ' , 2 , 3 )
SQL;
$count = $pdo -> exec ( $sql );
这里会 $count=2
还可以:执行一语sql语句,返回一个结果关联数组
$sql
=<<<
SQL
select * from aaaa
SQL;
$rs_r = $pdo -> query( $sql );
while ( $rs_aos = $rs_r -> fetchAll(PDO :: FETCH_ASSOC)){
var_dump ( $rs_aos );
}
select * from aaaa
SQL;
$rs_r = $pdo -> query( $sql );
while ( $rs_aos = $rs_r -> fetchAll(PDO :: FETCH_ASSOC)){
var_dump ( $rs_aos );
}
还可以:执行一语sql语句,返回第一行第一列的值(多用于统计记录数,如分页中的总页数统计)
$sql
=<<<
SQL
select count ( * ) from aaaa
SQL;
$rs_r = $pdo -> query( $sql );
$count = $rs_r -> fetch(PDO :: FETCH_COLUMN));
select count ( * ) from aaaa
SQL;
$rs_r = $pdo -> query( $sql );
$count = $rs_r -> fetch(PDO :: FETCH_COLUMN));
返回表aaaa中有多少条记录
还可以,插入一条数据,并返回刚插入数据的ID
$SQL
=
<<<
SQL
insert into atm_user(name , pass)
values( ' zhangyufeng ' , ' baobaoke ' )
SQL;
$count = $pdo -> exec ( $SQL );
$user_id = $pdo -> lastInsertId();
insert into atm_user(name , pass)
values( ' zhangyufeng ' , ' baobaoke ' )
SQL;
$count = $pdo -> exec ( $SQL );
$user_id = $pdo -> lastInsertId();
---------------------------------------------------
还有很多参数和方法参考手册,而且pdo的prepare方法其实更为常用。