从数据库中检索数据时出现问题

时间:2014-08-12 04:43:28

标签: php mysql pdo

我正在试图弄清楚如何使用PDO从数据库连接和获取数据,我一直在使用mysqli但是数字PDO现在已经过去了几天。

这是我的代码,看起来我可以连接,但我无法获取任何数据。

   <?php

$host = "localhost";
$user = "";
$pw = "";
$dbName = "test";

$numberID = 1;

$pdo = new PDO("mysql:host=$host", $user, $pw);

if ($pdo){
    echo "Connected";

    $smt=$pdo->prepare("SELECT from sample WHERE id=:ID");
    $smt->bindParam(":ID", $numberID);

    if($smt->execute()){
        $rows=$smt->fetchAll();
        print_r($rows);
    }
}

3 个答案:

答案 0 :(得分:2)

您的查询中存在语法错误。您缺少*或要选择的特定列名

$smt=$pdo->prepare("SELECT * from sample WHERE id=:ID");

并且您没有在连接中使用数据库名称。尝试使用此

$dbo = new PDO('mysql:host='.$host.';dbname='.$dbName, $user, $pw);

答案 1 :(得分:0)

您必须在SELECT之后指定列名或*,并在创建PDO对象时使用数据库。提供了工作代码

<?php
    $host = "localhost";
    $user = "";
    $pw = "";
    $dbName = "test";
    $numberID = 1;
    $pdo = new PDO('mysql:host='.$host.';dbname='.$dbName, $user, $pw);

    if ($pdo){
        echo "Connected";    
        $smt=$pdo->prepare("SELECT * FROM sample WHERE id=:ID");
        $smt->bindParam(":ID", $numberID);    
        if($smt->execute()){
            $rows=$smt->fetchAll();
            print_r($rows);
        }
    }
?>

答案 2 :(得分:0)

这真的很傻,但你确认已经安装了PDO吗?检查错误日志,看看它是否对丢失的pdo驱动程序咆哮。