无法使用PDO使用简单的简单查询来选择两列

时间:2014-08-25 00:47:35

标签: mysql pdo

下面是一个完整的PHP文件,其中包含注释中的数据库模式。

我只想使用PDO选择多个列。这有效:

$sql = $db->prepare('SELECT `title` from `wishlist` LIMIT 0, 10');

这将返回“内部服务器错误”。

$sql = $db->prepare('SELECT `title`,`comments` from `wishlist` LIMIT 0, 10');

查询在phpMyAdmin中正常工作。我做错了什么?

<?php 

/*
CREATE TABLE IF NOT EXISTS `wishlist` (
`id` int(9) NOT NULL AUTO_INCREMENT,
`title` varchar(100)  NOT NULL,
 `priority` integer NOT NULL,
`comments` text,
`timestamp` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
*/

    header("Access-Control-Allow-Origin: *");
    header('Content-type: application/json');
    try 
    {
        $connection = 'mysql:host=localhost;dbname=mrabcac_test;charset=utf8';
        $dbname='root';
        $password='xxxxxxxxxxxxxxxxxxxxx';
        $db = new PDO($connection, $dbname,$password);
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        // Works fine
        $sql = $db->prepare('SELECT `title` from `wishlist` LIMIT 0, 10');
        // Results in "Internal Server Error"
        $sql = $db->prepare('SELECT `title`,`comments` from `wishlist` LIMIT 0, 10');
        $sql->execute();
        $result = $sql->fetchAll(PDO::FETCH_ASSOC);
        echo(json_encode($result));
    }
    catch (PDOException $ex ) 
    {
        echo "Database error: ". $ex->getMessage();
    } 

?>

1 个答案:

答案 0 :(得分:0)

感谢您的帮助。结果证明是某种错误配置。当我在其他几台主机上尝试时,一切正常。看来我还不老。