2014-10-30 92 views
0

我有兩個php文件。一個PHP文件是我的詳細信息以連接到MySQL數據庫連接到單獨的'數據庫連接文件'

第二個PHP文件執行數據庫

我的問題是,第二個PHP文件似乎並沒有被actioning第一個PHP文件上選擇功能。

我剛剛轉向使用PDO命令而不是MYSQL命令。當我使用Require('connect_db');功能一切正常。自從我搬到PDO命令它不工作

我收到錯誤

Call to a member function execute() on a non object in................ 

我的代碼如下: -

的connect_db文件(我還沒有琴絃密碼,用戶,數據庫: -

 try 
      { 
      $mysql_link= new PDO("mysql:host=$servername;dbname=dbname;charset=utf8",$username,$password); 
      $mysql_link->setAttribute(PDO::ATTR_EMULATE_PREPARES,false); 
      $mysql_link->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 
      echo "Connected Success"; 
      } 
      catch(PDOException $e) 
      { 
      echo $e->getMessage(); 
      } 

我的選擇文件如下: -

   Require('connect_db.php');   

      $stmt=$mysql_link->prepare("SELECT cif_train_uid,cif_stp_indicator FROM schedule WHERE cif_train_uid=:cif_train_uid"); 
      $stmt->execute(array(':cif_train_uid'=>$cif_train_uid)); 
      foreach($stmt->fetchAll(PDO::FETCH_ASSOC) as $row) { 
       echo $row['cif_train_uid']; 
       echo $row['cif_stp_indicator']; 
      } 
      $mysql_link=null; 

如果我將所有代碼合併到一個文件中,它可以正常工作。 (這兩個腳本都在同一個文件夾中)。所以它只是Require()函數似乎沒有工作,但我不明白爲什麼。任何幫助感謝收到

+1

嘗試在'require()'後面立即轉儲'$ mysql_link',看看它是否是'PDO'對象。 – Nevertheless 2014-10-30 21:42:40

+0

感謝Grimv01k你讓我看到它不是一個PDO對象,原因是我上傳了錯誤的connect_db文件..............即我上傳了舊的mysql一個,而不是新的PDO一個 – user2635961 2014-10-30 21:53:50

+0

很高興幫助,乾杯! – Nevertheless 2014-10-30 21:56:25

回答

0

我可以看到一個包含/必需的文件導致一個問題,當您將代碼放入包含文件中不會發生的唯一原因是,當包含文件中沒有開放php標記:

<?php 
^^^^^ this... 
try 
{ 
    $mysql_link= new PDO("mysql:host=$servername;dbname=dbname;charset=utf8",$username,$password); 
    ... 
+0

謝謝Jeroen。我看到了我的錯誤,並對Grimv01k – user2635961 2014-10-30 21:56:43

+0

@ user2635961進行了評論,那麼您應該刪除您的問題。 – jeroen 2014-10-30 22:01:48