PHP - Ajax调用 - <b>致命错误</b>:在非对象上调用成员函数prepare()

时间:2013-12-26 18:47:10

标签: php jquery ajax

我的网站目前使用法语,英语和荷兰语。法语是主要语言,也是迄今为止唯一的语言。

我的jquery脚本对php页面进行ajax调用。

我得到的回答是这样的:致命错误:在

中的非对象上调用成员函数prepare()

如何摆脱这个错误?在法语版本上它完美运作! 3种语言使用相同的PHP脚本。

fermetureEtablissement = [] ;

$.ajax({
    type: "POST", 
    url: "./admin/datesajax.php", 
    data: ({idproduit: 'tous'}), 
    cache: false, 
    dataType: "json", 
    async: false, 
    success: function(data) {
        fermetureEtablissement = data;
    }
}); 

你知道如何解决这个问题吗?

您可以在此处看到无法使用的页面:

  1. 点击此页面上的“图书”:http://www.velo-montagne.com/en/hotel/au-colombier-de-luxe-room
  2. 然后检查ajax调用和响应。它显示错误。
  3. 您可以在此处查看工作页面:

    1. 点击此页面上的“reserver”:http://www.velo-montagne.com/hotel/chambre-au-colombier-de-luxe
    2. 然后检查ajax调用和响应。它很棒!
    3. dateajax.php示例:

      if ($_POST['idproduit'] == 1 or $_POST['idproduit'] == 4 or $_POST['idproduit'] == 5 or $_POST['idproduit'] == 'tous' or $_POST['idproduit'] == 'ouverturesexceptionnelles' ){  
          $sth1 = $dbh->prepare("SELECT datesbloquees FROM vm_datesbloquees WHERE idproduit = :idproduit" );
          $sth1->execute(array(':idproduit' => $_POST['idproduit'])); 
          $result = $sth1->fetchAll();
      
          $tableaudatesbloquees = explode(",", $result[0]['datesbloquees']);
          //print_r($tableaudatesbloquees);
      }
      
      
      function dbConnect(){
        global $dbh;
      
        $dbInfo['database_target'] = "xxx";
        $dbInfo['database_name'] = "xxx";
        $dbInfo['username'] = "xxx";
        $dbInfo['password'] = "xxx";
      
        $dbConnString = "mysql:host=" . $dbInfo['database_target'] . "; dbname=" . $dbInfo['database_name'];
        $dbh = new PDO($dbConnString, $dbInfo['username'], $dbInfo['password'],array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''));
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
      
      }
      

1 个答案:

答案 0 :(得分:0)

变量$ dbh不包含数据库对象