在我的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();
}
?>
答案 0 :(得分:2)
您还应发布文件connect.php
的内容,以便我们确定您如何实例化PDO对象(确保删除密码)。
默认情况下,PDO不支持堆叠查询(由;
分隔的多次查询),必须启用仿真模式(PDO::ATTR_EMULATE_PREPARES
),但在您的情况下并不需要它。
为了使您的第二个示例正常工作,您应该删除use charles;
部分,并确保在您提供给PDO构造函数的DSN中传递dbname=charles
。
答案 1 :(得分:1)
从查询中删除use charles;
。我不确定你为什么使用它,但从查询和检查中取消它。