php pdo语句错误

时间:2014-01-08 04:55:46

标签: php pdo

我是php pdo的新手。在这里,我正在尝试使用预准备语句从数据库中获取我的数据库记录。但它没有取得记录。我收到以下错误

  

致命错误:带有消息的未捕获异常'PDOException'   'SQLSTATE [3D000]:无效的目录名称:1046未选择数据库

为什么我收到此错误?为什么它没有从数据库中获取记录?

<?php
$user = "root";
$password = "password";

    try {
        $conn = new PDO('mysql:host=localhost;database=evouchers', $user, $password);
        $conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    } catch(PDOException $e){
        echo 'DATABASE ERROR : ' . $e->getMessage();
    }

    $sql = "SELECT UserName FROM ebusers ORDER BY UserName";
    $db = $conn->query($sql);
    $db->setFetchMode(PDO::FETCH_ASSOC);

    while($row = $db->fetch())
    {
        print_r($row);
    }
?>

3 个答案:

答案 0 :(得分:3)

数据库连接字符串中的

而不是数据库使用dbname

  $conn = new PDO('mysql:host=localhost;database=evouchers', $user, $password);
  ---------------------------------------^



 $conn = new PDO('mysql:host=localhost;dbname=evouchers', $user, $password);

文档链接:http://php.net/manual/en/pdo.connections.php

答案 1 :(得分:2)

我认为应该是

$conn = new PDO('mysql:host=localhost;dbname=evouchers', $user, $password);

或者在初始化PDO之后尝试

$conn->exec('USE evouchers;');

答案 2 :(得分:2)

使用以下行进行pdo连接

 $conn = new PDO('mysql:host=localhost;dbname=evouchers', $user, $password);