php在非对象问题上调用成员函数prepare()

时间:2011-06-16 15:51:52

标签: php database

<?php
    $dbtype = 'mysql';
    $mysql_host = "localhost";
    $mysql_database = "mydb";
    $mysql_user = "root";
    $mysql_password = "";
    try {
        $db = new PDO ( $dbtype . ':host=' . $mysql_host . ';dbname=' . $mysql_database,         $mysql_user, $mysql_password, array (PDO::ATTR_PERSISTENT => true ) );
        return $db;
    } catch ( PDOException $e ) {
        return false;
    }
?>

以上是我的db.php

<?php
   require db.php";
   ...
   global $db;
   $stmt = $db->prepare ( "INSERT INTO quote (title, contactname) VALUES (:a, :b);" );

我实际上能够在我的IDE(ZendStudo wamp服务器)下正确运行它,但是一旦我上传到主机服务器,我就遇到了这个错误。任何人面临同样的问题可以指导我如何解决?

2 个答案:

答案 0 :(得分:0)

我可以有很多理由,但有一点是,你有一个PDOException,然后是$db == false,它会解释错误信息。

尝试检查$db是否已正确设置为PDOfalse

答案 1 :(得分:0)

除非您明确指示它执行此操作,否则PDO不会抛出异常:

$db = new PDO(...);
$db ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);