Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php调用非对象问题的成员函数prepare()_Php_Database - Fatal编程技术网

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

php调用非对象问题的成员函数prepare(),php,database,Php,Database,上面是我的db.php <?php $dbtype = 'mysql'; $mysql_host = "localhost"; $mysql_database = "mydb"; $mysql_user = "root"; $mysql_password = ""; try { $db = new PDO ( $dbtype . ':host=' . $mysql_host . ';dbname=' . $mysql_data

上面是我的db.php

<?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;
    }
?>

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

可能有很多原因,但有一个明显的原因是您有一个PDOException,然后$db==false,这将解释错误消息


尝试检查$db是否正确设置为PDO或false。

PDO不会引发异常,除非您明确指示它这样做:

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

如果db connect代码引发异常,那么返回false的是什么?使用phpinfoThank检查PDO扩展谢谢,$db从未正确设置,因为传入的值错误。
$db = new PDO(...);
$db ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);