0

我是 PDO 的新手。我尝试了一些在线教程并找到了一些分步指南。我正在使用 WAMP,我创建了一个名为“try”的数据库,其中的表名为“books”。现在在我的 index.php 中我写道:

<?php
$host   = "localhost:3306";
$db = "try";
$user   = "clyde";
$pass   = "moonfang";
$conn = new PDO("mysql:host=$host;dbname=$db",$user,$pass);

$sql = "SELECT * FROM books";
$q   = $conn->query($sql) or die("failed!");    

while($r = $q->fetch(PDO::FETCH_ASSOC)){    
    echo $r['title'];
} 
?>

现在,每当我在浏览器上加载 localhost 时,我都会看到这些错误; 在此处输入图像描述 我不明白这个问题.. :-(

4

3 回答 3

2

根据几个示例,PDO 似乎更喜欢dsn 中的thehost和 the :port

$host = "localhost";
$port = 3307;
$conn = new PDO("mysql:host=$host;port=$port;dbname=$db",$user,$pass);

这是 PDO MySQL DSN 的 PHP 手册。注意“端口”部分。

于 2012-10-23T14:14:13.013 回答
0

问题是目标机器主动拒绝 [the connection]

因此,您必须检查数据库服务器的用户名/密码/访问权限是否都正常;包括 IP/主机和端口/防火墙设置。

于 2012-10-23T14:14:45.463 回答
0

发生错误的第 8 行是 $q = $conn->query($sql) or die("failed!");此行混合了 mysql_ 和 PDO,不是必需的。

代码应该看起来像

$sql = "SELECT * FROM books";
while($r = $sql->fetch(PDO::FETCH_ASSOC)){    
   echo $r['title'];
} 

您还应该合并 PDO 错误处理

`

于 2012-10-23T15:15:02.853 回答