SQLSTATE [HY000]:常规错误和数组(0){}

时间:2017-05-30 13:01:10

标签: php mysql pdo

在我的pdo脚本中,我正在查询我的数据库,以便在我的本地计算机中为我的数据库中的所有用户提供给我,但我看到的只是" SQLSTATE [HY000]:一般错误"

这是我的剧本;

<?php
ini_set('display_errors','on');
require_once('connect.php');

try{

$username='charlyo';
$con=$connect->query('select * from users where username=:username');
var_dump($con->fetchAll());
}
catch(PDOException $e){
   echo $e->getMessage();

}

 ?>

在解决问题的同时我尝试使用准备好的语句。我现在得到&#34; array(0){}&#34;我使用fetchAll方法时没有返回任何数组。

以下是准备声明的第二个脚本:

<?php
ini_set('display_errors','on');
require_once('connect.php');

try{

$username='charlyo';
$con=$connect->prepare('select * from users where username=:username');
$con->bindParam(':username',$username);
$con->execute();
var_dump($con->fetchAll());
}
catch(PDOException $e){
   echo $e->getMessage();

}

 ?>

2 个答案:

答案 0 :(得分:2)

您还应发布文件connect.php的内容,以便我们确定您如何实例化PDO对象(确保删除密码)。

默认情况下,PDO不支持堆叠查询(由;分隔的多次查询),必须启用仿真模式(PDO::ATTR_EMULATE_PREPARES),但在您的情况下并不需要它。

为了使您的第二个示例正常工作,您应该删除use charles;部分,并确保在您提供给PDO构造函数的DSN中传递dbname=charles

答案 1 :(得分:1)

从查询中删除use charles;。我不确定你为什么使用它,但从查询和检查中取消它。