嗨,这是我的PHP代码:
<?php
function dbConnect() {
global $dbh;
$dbInfo['database_target'] = "localhost";
$dbInfo['database_name'] = "pdo";
$dbInfo['username'] = "root";
$dbInfo['password'] = "";
$dbConnString = "mysql:host=" . $dbInfo['database_target'] . "; dbname=" . $dbInfo['database_name'];
$dbh = new PDO($dbConnString, $dbInfo['username'], $dbInfo['password']);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$error = $dbh->errorInfo();
if($error[0] != "") {
print "<p>DATABASE CONNECTION ERROR:</p>";
print_r($error);
}
}
function dbQuery($queryString) {
global $dbh;
$query = $dbh->query($queryString);
$i = 0;
foreach ($query as $query2) {
$queryReturn[$i] = $query2;
$i++;
}
if($i > 1) {
return $queryReturn;
} else {
return $queryReturn[0];
}
}
dbConnect(); // Connect to Database
?>
运行此代码时,它会显示如下输出:
DATABASE CONNECTION ERROR:
Array ( [0] => 00000 [1] => [2] => )
我想知道,这段代码是否正确,如果此代码中有任何错误,请指导我,我是pdo的新手。
谢谢。
答案 0 :(得分:0)
在建立连接后不要检查errorInfo。
如果连接失败,PDO会抛出异常。
答案 1 :(得分:0)
我认为你的意思是global $dbInfo;
而不是global $dbh;
,因为dbInfo
似乎在此函数中未定义,与dbh
不同。
答案 2 :(得分:0)
请阅读文档:
http://php.net/manual/en/pdo.query.php
http://en.php.net/PDOStatement
PDO :: query返回PDOStatement对象。此类具有公共属性rowCount
。
你不需要迭代所有结果,计算em等,...
function dbQuery($queryString) {
可以用一行代替:
return $query->rowCount > 1 ? $query->fetch() : /* else */;