0

在过去的一个小时里,我一直在努力弄清楚为什么当我确定行列式是正确的时某些函数总是返回错误的布尔值。

因此,作为调试器,我越来越抽象地测试所有变量,直到我实际测试血腥数据库连接。

我可以连接到我的数据库,但发送给它的每个查询总是返回 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=”

好心疼!:)

4

2 回答 2

1

您想要dbname=privatechat在您的 DSN 中。

于 2012-08-13T15:40:08.403 回答
1

PDO 连接字符串应该是“mysql:dbname=privatechat” 我错过了“名称”部分!哎呀!

于 2012-08-13T15:40:16.923 回答