PDO代码不起作用

时间:2012-10-23 14:09:06

标签: php mysql pdo

我是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时,我都会看到这些错误; enter image description here 我不明白这个问题..: - (

3 个答案:

答案 0 :(得分:2)

根据several examples,PDO似乎更喜欢dsn中的hostport

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

Here's the PHP manual for the PDO MySQL DSN。注意“端口”部分。

答案 1 :(得分:0)

问题是目标计算机主动拒绝[连接]

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

答案 2 :(得分: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错误处理

`