是真的有错误,还是我的服务器不支持PDO?

时间:2012-10-13 10:07:44

标签: php mysql pdo

据我所知,我已经从mySQL更改为PDO调用,但我似乎无法访问实际数据库,如下所示

$db = new PDO("mysql:host=localhost;dbname=info;charset=UTF-8", 'admin', 'xxxxxx');

返回

Parse error: syntax error, unexpected T_VARIABLE in db.php on line 8

我已经通过论坛查看了,并且从我读过的服务器确实支持PDO,此外phpinfo()出于安全原因被禁用,所以我不能转向那个,我是否真的在字符串中出错了或者这是否意味着我的服务器还不支持PDO?

3 个答案:

答案 0 :(得分:0)

最后两个参数应该用单引号封装,或者是变量本身。即(新PDO(“stuffhere”,$ user,$ pass)

修改 试试这个:How to check if PDO support is enabled in my Apache Installation?

if (!defined('PDO::ATTR_DRIVER_NAME')) {
    echo 'PDO unavailable';
}
elseif (defined('PDO::ATTR_DRIVER_NAME')) {
    echo 'PDO available';
}

答案 1 :(得分:0)

为了更好地了解某条线的哪一部分有错误,您可以将其拆分为多条线。 e.g。

 8. $db = new PDO("mysql:host=localhost;dbname=info;charset=UTF-8", 'admin', 'xxxxxx');

可以更改为:

 8. $db = new PDO(
 9. "mysql:host=localhost;dbname=info;charset=UTF-8",
10. 'admin',
11. 'xxxxxx');

现在报告错误的行可能是8,9,10或11,你会更准确地知道错误。

答案 2 :(得分:0)

您可能想尝试从头开始重写有问题的行并完全删除旧行。我有几个问题,我正面临unexpected T_VARIABLE - 错误没有明显的原因。我想这是因为我已经设法在笔记本电脑的键盘上使用某种键组合,这会导致一些不可见的字符进入我的代码。

重写线后,问题通常会消失。