【问题标题】:PHP $db PDO connection errorPHP $db PDO 连接错误
【发布时间】:2016-04-15 15:15:02
【问题描述】:

我想做posts和cmets系统。
帖子工作正常,但 cmets 有

PHP 错误:致命错误:在 C:\xampp\htdocs\index.php:133 中未捕获的异常 'PDOException' 和消息 'invalid data source name' 堆栈跟踪:#0 C:\xampp\htdocs\index.php (133): PDO->__construct('localhost', 'root', '') #1 {main} 在第 133 行的 C:\xampp\htdocs\index.php 中抛出。`

$db = new PDO ("localhost", "root", "");
$query = $db->prepare("SELECT * FROM comments");
$query->execute();
while($fetch = $query->fetch(PDO::FETCH_ASSOC)){
    $name = $fetch['name'];
    $message = $fetch['comment'];
    echo "<li class='com'><b>".ucwords($name)."</b> - ".$message."</li>";
}

它是表格的元素。请帮忙。

【问题讨论】:

  • 目前,您还没有选择数据库。 php.net/manual/en/pdo.construct.php
  • 是的,但即使我仍然有同样的错误
  • 请将代码编辑为最​​终版本,包含选定的数据库和全部
  • 当他们发布的代码不完整时,人们如何期望得到正确的响应?
  • 提示(对于OP和评论者):如果您在给定的代码行中出现错误,则该错误不会由之后执行的代码行引起。

标签: php mysql pdo


【解决方案1】:

实例化时需要指定DSN,将testdb替换为你的数据库名称。

localhost 更改为类似mysql:dbname=testdb;host=127.0.0.1

$db = new PDO ("mysql:dbname=testdb;host=localhost", "root", "");
$query = $db->prepare("SELECT * FROM comments");
$query->execute();
while($fetch = $query->fetch(PDO::FETCH_ASSOC)){
    $name = $fetch['name'];
    $message = $fetch['comment'];
    echo "<li class='com'><b>".ucwords($name)."</b> - ".$message."</li>";
}

在此处阅读更多信息:http://php.net/manual/en/pdo.construct.php

用法:public PDO::__construct (string $dsn [, string $username [, string $password [, array $options ]]])

【讨论】:

  • 请务必使用复选框接受答案,因为它解决了您的问题,谢谢
  • 它告诉我我不能给 +1 因为我没有 15 声望。
  • 您可以点击复选框,out 将接受答案。复选框位于向下投票箭头下方,
猜你喜欢
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
  • 2019-07-28
  • 2014-12-09
  • 2016-03-29
  • 2015-12-02
  • 2010-11-29
  • 1970-01-01
相关资源
最近更新 更多