PDO配置及使用中需要注意的7个方面
使用PDO类进行mysql连接,需要注意的问题:
1 连接失败会抛出异常,需要捕捉
2 使用预定义sql功能时,需要使用pdo->prepare(sql)才会生成返回PDOStatement 类。
3 使用bindParam方法绑定参数是,需要注意第二个参数必须为变量值,不能直接赋值。
$db2->bindParam(':pass',$user);
$db2->bindParam(':pass',‘aaa'); 这将报异常
4 直接使用query()方法将得到结果对象,可以直接遍历
foreach ($conn->query($sql) as $row) { print $row['name'] . " ";
print $row['color'] . " ";
print $row['calories'] . "
"; }
5 使用prepare 方式时,字符串无需添加双引号
6 使用预处理的方式可以采用$db->errorInfo() 方法查看具体产生的错误信息
array (size=3)
0 => string '00000' (length=5) 1 => null 2 => null
正确执行时返回的信息
7 pdo 完整连接模式
$pdo = new PDO('mysql:host=localhost;port=3306;dbname=test;charset=utf8',
'root',array(PDO::ATTR_PERSISTENT=>true));
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
demo:
$db = new PDO('mysql:host=localhost;dbname=dbname;charset=utf8', 'dbusername', 'dbpass');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "INSERT INTO FB_USERS (FULL_NAME,PASSWORD,PASSWORD_SALT,EMAIL_ADDRESS)
VALUES (:FULL_NAME,:PASSWORD,:PASSWORD_SALT,:EMAIL_ADDRESS)";
$stmt = $db->prepare($sql);
$params = array
(
'FULL_NAME'=>'David', 'PASSWORD'=>'sadsad', 'PASSWORD_SALT'=>'adadad',
'EMAIL_ADDRESS'=>'david@gmail.com');
$stmt->execute($params)
参考网址:http://www.jb51.net/article/57609.htm
http://www.runoob.com/php/php-pdo.html