2012-01-13 134 views
-2
require("includes/connect.php"); 

      $result = mysql_query("SELECT * FROM entries", $link); 

      while ($row = mysql_fetch_array($result)) { 
       htmlentities($row['quotes']); 
      } 

我想顯示的數據是在數據庫中,但我不斷獲取:mysql_real_escape_string()預計參數1是字符串

Warning: mysql_real_escape_string() expects parameter 1 to be string 

這有什麼錯在上面的代碼,導致問題?我對PHP很陌生,我正試圖理解發生了什麼以及爲什麼這樣做。

connect.php

$link = mysql_connect("localhost", "root", ""); 

    if (!$link) { 
     die("Could not connect to the db"); 
    } 

    mysql_select_db("ENTRIES", $link); 

(我工作的這個地方,所以用戶名/密碼真的並不重要,現在)

+4

這不是上面的代碼導致的問題,因爲它沒有'mysql_real_escape_string()'。除非它包含在'connect.php'文件中,在這種情況下,我們需要看到它。 – Mchl 2012-01-13 08:38:41

+0

發佈你的'connect.php'文件中的代碼。 – Cyclonecode 2012-01-13 08:40:37

+0

完成了,我試圖使用mysql_real_escape_string(),但我做錯了。我怎樣才能正確地把它放入? – nowayyy 2012-01-13 08:42:17

回答

1

我沒有看到這一點與逃逸以上查詢,但你可以做這樣的:

$result = mysql_query(mysql_real_escape_string("SELECT * FROM entries"), $link); 

你應該閱讀文檔:mysql_real_escape_string()

+0

替換爲我的,但仍然給我錯誤。 – nowayyy 2012-01-13 08:49:29

+0

然後你在別的地方使用'mysql_real_escape_string()',因爲你沒有發佈相關代碼,所以給你任何建議都有點困難。 – Cyclonecode 2012-01-13 08:51:31

+0

我使用的所有PHP都在那裏。 – nowayyy 2012-01-13 08:55:16

0

由於錯誤解釋mysql_real_escape_string()將字符串作爲參數。在您發佈的代碼中,您傳遞的是$link,它不是字符串,而是數據庫連接。

由於@kristen,一直到解決方案說的應該是包裝你的SQL語句,像這樣

$result = mysql_query(mysql_real_escape_string("SELECT * FROM entries"), $link); 

如果你仍然在這之後收到錯誤,你必須在其他地方使用該功能。

+0

downvote沒有解釋? – 2012-01-13 09:21:52

相關問題