单条查询不需要启用事务处理,并且不需要使用PDO的预处理方式,但注意要使用$pdo->quote()方法来自动将字符型变量值的字符中首尾加上单引号,以防止SQL注入,并且免去特殊符号转义的过程。
Query('set names "utf8"'); //设置mysql字符集
$sql_str='select * from tb where var2='.intval($var2).' and var1='.$pdo->quote($var1); //sql语句
if (!$sql=$pdo->Query($sql_str)) { //如果查询出错
$sql_info=$pdo->errorInfo(); //取得错误信息数组(注意此处取的是$pdo的errorInfo而不是$sql的)
echo '错误:'.$sql_info[2]; //输出错误信息
}
else {
$row=$sql->fetchAll(); //取得所有记录
if(count($row)==0) { //记录记录结果
echo '没有符合条件的记录';
}
else {
/* 仅输出一条记录
$row=$sql->fetch();
echo 'id:'.$row['id'].'
';
*/
foreach($row as $row) { //循环保存所有结果到数组变量$row
echo 'id:'.$row['id'].'
';
}
}
}
unset($pdo); //注销pdo对象
}
catch (Exception $e) {
die('数据库连接失败');
}
?>
1