<?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服务器(下正确运行它,但一旦我上传到主机服务器,我就收到了这个错误。任何以前遇到同样问题的人都可以指导我如何解决?
原因有很多,但有一个明显的原因是您有一个PDOException,然后是$db == false
,这将解释错误消息。
尝试检查$db
是否正确设置为PDO
或false
。
PDO不会抛出异常,除非您明确指示它这样做:
$db = new PDO(...);
$db ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);