pdo fetchAll函数返回一个空数组

时间:2015-08-21 04:13:51

标签: php mysql pdo

我知道这可能是一个重复的问题,但我真的没有找到任何帮助阅读其他回复,这就是为什么我决定发布我的问题,我试图使用pdo准备声明提取一些数据,但我总是得到一个空数组,即使我的查询似乎没问题,这是我的代码任何帮助将不胜感激。

$host = 'localhost';
$dbname = 'dbname';
$password = 'xxxxx';
$user = 'xxxxx';
try{

$dbh = new PDO("mysql:host=$host;dbname:$dbname",$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
$sth = $dbh->prepare("SELECT * FROM subregions");
$sth->execute();
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);
/*foreach($result as $row){
    echo "<li>$row['name']</li>";
}*/
}catch (PDOexception $e){
  $e->getMessage();
  die();
}
?>

2 个答案:

答案 0 :(得分:0)

答案很简单。如果返回空数组,则表示查询未返回任何行。这就是逻辑。

答案 1 :(得分:0)

试试这个,它应该有用。

<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:host=127.0.0.1;dbname=test;';
$user = 'root';
$password = '';

try {
    $dbh = new PDO($dsn, $user, $password);
    $sth = $dbh->prepare("SELECT * FROM email_table");
    $sth->execute();
    echo $sth->rowcount();
    $result = $sth->fetchAll(PDO::FETCH_ASSOC);
    var_dump($result);
} catch (PDOException $e) {
  $e->getMessage();
}
?>

由于 阿米特