下面是一个完整的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();
}
?>
答案 0 :(得分:0)
感谢您的帮助。结果证明是某种错误配置。当我在其他几台主机上尝试时,一切正常。看来我还不老。