2012-04-13 58 views
0

我正在從MySQL表中獲取數據以將其顯示在頁面上。該腳本正在顯示信息,但在我的表格中,普通引號是作爲另一種類型的引號字符插入的,例如。 (’)(「 」)當在Microsoft Word 2010中鍵入某些內容時,會自動格式化該格式,用於鍵入表格中的大部分條目。所以我猜這些是特殊字符。但每當我測試顯示實際單引號字段(')(" ")我收到一個mysql_fetch_row期望參數1是一個資源,布爾給出錯誤。這是我使用的代碼:顯示來自MySQL表的字段,但沒有帶有引號的字段

$result = mysql_query("SELECT `question` FROM {$db_table_alt}"); 

while($field = mysql_fetch_row($result)) { 
foreach($field as $fields) { 

//build a unique section ID based on the ID that the Question belongs to 
$uid = mysql_query("SELECT `id` FROM `questions` WHERE `question` LIKE '%$fields%'"); 
while($uidfield = mysql_fetch_row($uid)) { 

但每當我使用此行 $fields = mysql_real_escape_string(stripslashes($fields));真實報價領域將顯示,但與前報價前斜線。 有人可以幫我找到解決這個問題嗎?

+1

表中的實際數據是什麼?當您在該列上運行select時,phpmyadmin或您正在使用的任何客戶端會顯示什麼內容? – 2012-04-13 01:27:55

+0

當我使用phpmyadmin它顯示相應的查詢正確的列,但它的PHP這是整個(如果它是一個報價,喘息mysql_real_escape_string和stripslashes它不會顯示)的情況。 – Tower 2012-04-13 01:34:03

+0

這兩個表格之間的連接是什麼? $ db_table_alt變量中的內容是什麼?它看起來像你不需要2個查詢,但只有一個。 – 2012-04-13 11:01:54

回答

-1

如果mysql_fetch_row()正在抱怨一個布爾值,意味着mysql_query或者沒有返回行或者SQL有錯誤(mysql_error()會告訴你哪個)。

如果您在返回的數據中引號之前得到反斜槓,那麼它們將被放入數據庫中。這聽起來像magic_quotes已啓用。你真的想把它關掉,因爲它是一個過時的,破解的問題解決方案。我想你將不得不學習字符編碼。默認的MySQL安裝不會是UTF8,恐怕它可能是ISO-8859-15。用於喜歡在Windows-1252中編寫文本的詞不一樣。然後,無論瀏覽器,網站和其他與數據庫交流的事情都會變得更加複雜。我相信PhpMyAdmin會嘗試以UTF8運行,因此如果數據不是UTF8,數據轉換爲表格。這也會影響您查詢「智能報價」的查詢。

+0

Magic_quotes沒有啓用,我跑了一行代碼'回聲「魔術引號是」。 (get_magic_quotes_gpc()?「ON」:「OFF」);'並返回** OFF ** – Tower 2012-04-13 01:44:16

-1

這裏你似乎有兩個不同的問題。

其中$result正在計算布爾值,這意味着生成的查詢中有錯誤(SELECT question FROM {$db_table_alt})。嘗試回顯該查詢並手動運行它。這可能是由{$db_table_alt}命名的表/視圖不存在。

第二個是字符串轉義問題。我期望引號在數據庫中被轉義 - 在查詢上使用mysql_real_escape_string不會改變返回的結果是否被轉義。另外,如果數據庫中的數據被斜槓轉義,您應該閱讀魔術引號以及如何處理它們:PHP docs on magic quotes。從數據庫中提取數據時,您不必進行任何字符串轉義。

+0

我沒有迴應查詢並手動運行它,並且它打印所有字段,即使是具有'真實引用'它是我正在測試。但是在頁面的底部,那些帶有「真實引號」的字段應該像所有其他字段一樣以段落格式顯示,這隻會導致mysql_fetch_row錯誤。有任何想法嗎? – Tower 2012-04-13 02:02:39

+0

您傳遞給'mysql_fetch_row'的資源不是資源。它可能在某處被覆蓋,但沒有代碼很難說。標準的做法是去掉所有不相關的代碼,這樣只有那些不符合你期望的部分纔會出現。大部分時間解決了這個問題。 – sennett 2012-04-13 02:08:43

+0

這裏是我用來顯示字段的所有代碼的副本,所以你可以幫助我多一點。 http://pastebin.com/6cVNCfYx – Tower 2012-04-13 02:25:41