2013-03-10 48 views
0

我有調用數據庫存儲過程的PHP代碼。致命錯誤:函數名稱必須是第6行中的C: xampp htdocs ambot database.php中的字符串

<?php 
include("DataBase.php"); 
$sql=$mysqli_query("CALL sp()"); 
if($sql === FALSE) { 
trigger_error('Query failed returning error: '. $mysqli_error(),E_USER_ERROR); 
} else { 
while($row=$mysqli_fetch_array($sql)) 
{ 
echo $row['id'].'--'.$row['item'].''; 
} 
} 
?> 

DB Conection;

<?php 
$mysqli_hostname = "localhost"; 
$mysqli_user = "root"; 
$mysqli_password = ""; 
$mysqli_database = "liveedit"; 
$bd = $mysqli_connect($mysqli_hostname, $mysqli_user, $mysqli_password) 
or die("Opps some thing went wrong"); 
$mysqli_select_db($mysqli_database, $bd) or die("Opps some thing went wrong"); 
?> 

的代碼返回此錯誤:

Fatal error: Function name must be a string in C:\xampp\htdocs\ambot\database.php on line 6 

有什麼不好的代碼?我試圖解決這個問題,但是在我的代碼中使用存儲過程修復這個問題會增加困難。

+0

您的mysql_query調用遇到錯誤,因此它返回'FALSE'。請參閱php的[mysql_query](http://php.net/manual/en/function.mysql-query.php)文檔。你確定你的查詢是正確的嗎? – Aiias 2013-03-10 06:45:05

+0

我更新了我的帖子。檢查查詢,現在的錯誤是不同的。檢查出來.. – 2013-03-10 06:53:39

+0

你是否在'include(「DataBase.php」);'?您可能希望將'Definer'設置爲對您的程序稍微寬鬆一些。請參閱[程序語法](http://dev.mysql.com/doc/refman/5.0/en/create-procedure.html)上的MySQL文檔。 – Aiias 2013-03-10 06:58:56

回答

0

您的代碼在我的機器上正常工作。

您可以嘗試切換mysqli_*擴展名,至少出於測試目的。爲此目的改變你的代碼,並確保你的連接信息是正確的(主機,用戶名,密碼,數據庫名稱)。

<?php 
//include("DataBase.php"); 

$db = mysqli_connect("localhost","user","password", "dbname"); 
if (!$db) { 
    die('Could not connect: ' . mysqli_error()); 
} 

$sql = mysqli_query($db, "CALL sp()"); 
if($sql === FALSE) { 
    die('Query failed returning error: '. mysqli_error()); 
} else { 
     while($row=mysqli_fetch_array($sql)) 
     { 
     echo $row['id']. "<br>"; 
     } 
    } 
?> 
+0

@SoonToBeRevealed試試我的代碼,讓我們看看它會告訴你什麼。 – peterm 2013-03-10 07:29:29

+0

ooppps我的壞,我把「$」每個mysqli.this作品!謝謝! – 2013-03-10 07:32:59

+0

很高興幫助。祝你好運:D – peterm 2013-03-10 07:33:49

相關問題