2014-06-14 54 views
0

錯誤我有一個名爲precios的數據庫表,只有4列,第一列叫做codigo。這個想法是將實際的網頁名稱與codigo專欄中的數據進行比較。例如,我的實際網頁名稱被稱爲:... AC01.php,在該表中,codigo列包含一行AC01,其他列有價格,所以當PHP知道實際網頁是AC01.php時,會輸出價格與網頁設計的幾個部分中與該頁面同名的行相關。在繼續下面的步驟之前,我試圖測試這個比較。如何修復「功能名稱必須是字符串」PHP

這是我的實際代碼:

$pageName=basename($_SERVER['REQUEST_URI'], ".php"); (tested, works!) 
$link=mysqli_connect('localhost','%%%','%%%'); (tested, connection works!) 

/*checking connection*/ 
if(mysqli_connect_errn()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$query="SELECT * FROM precios WHERE codigo='$pageName'"; 
$result=mysqli_query($link, $query); 
$row=mysqli_fetch_array($result); 
echo $row; 

mysqli_close($link); 

這是錯誤消息我得到:

Fatal error: Function name must be a string in ...AC01.php on line 40. 

從Dreamweaver中,我可以看到40行如下:

$result=$mysqli_query($link, $query); 
+2

在'mysqli_query'之前有一個額外的'$'。 '$ result = $ mysqli_query($ link,$ query);'應該是'$ result = mysqli_query($ link,$ query);'。 –

+1

當您處理它時,請修復代碼中的[SQL注入](http://bobby-tables.com)漏洞。用[MySQLi準備好的語句](http://www.php.net//manual/en/mysqli.quickstart.prepared-statements.php)重寫代碼,並保存你的網站免遭黑客攻擊。 –

+0

在'mysqli_query'之前刪除額外的'$'輸出以下內容:'警告:mysqli_fetch_array()期望參數1是mysqli_result,布爾給出在... AC01.php在線4' –

回答

0

此行:

$result=$mysqli_query($link, $query); 

是錯誤的。您需要刪除$。所以在你的情況下,它將是:

$result= mysqli_query($link, $query); 
+0

我做過了,請閱讀原帖的所有評論。謝謝 –

相關問題