在过去的一小时里,我一直在撕扯我的头发,试图弄清楚为什么某些功能在我确定决定因素是正确的时候一直在返回假bool。
因此,作为调试器,我进一步抽象并进一步测试所有变量,直到我达到实际测试血腥数据库连接的程度。
我可以连接到我的数据库,但发送给它的每个查询总是返回false。我很困惑。这怎么可能是错的?
$db = new PDO('mysql:db=privatechat;host=127.0.0.1', 'root', '');
var_dump($db);
$stmt = $db->prepare("SELECT * FROM `accounts`");
var_dump($stmt);
$stmt->execute();
$row = $stmt->fetch();
var_dump($row);
结果:
object(PDO)#1 (0) { } object(PDOStatement)#2 (1) { ["queryString"]=> string(24) "SELECT * FROM `accounts`" } bool(false)
这是一个疯狂的部分......当我连接到另一个本地项目时,它很好!?
以下是我的数据库和表格的屏幕截图:
我刚才意识到,当我提交这个问题时,“db =”应该是“dbname =”
好悲伤! :)
答案 0 :(得分:1)
您希望DSN中有dbname=privatechat
。
答案 1 :(得分:1)
PDO连接字符串应该是“mysql:dbname = privatechat”我错过了'name'部分! Woops!