2012-11-08 65 views
0

如果選項值包含撇號,則發佈的值來自選項值組合框的發佈值。該值在撇號處被截斷。值來自一個數據庫,他們坐在撇號旁愉快地。在選項值組合框中發佈引起撇號的撇號

我明白爲什麼會發生這種情況,但我不知道如何解決此問題。有任何想法嗎?提前致謝。

echo "<tr><td>Location:</td>"; 
while($row = mysql_fetch_assoc($result)) { 
    $dropdown_location .= "\r\n<option value='{$row['location']}'>{$row['location']}</option>"; 
} 

$dropdown_location .= "\r\n</select>"; 
echo "<td>" . $dropdown_location . "</td> </tr>"; 

回答

1

你的代碼是安靜的凌亂,以及是否有同時發佈問題或檢索數據時,總是使用mysqli_real_escape_string()轉義引號,數據庫發佈數據之前,你是不是你的問題明確,淨化你的數據,而且停止使用mysql_(),使用mysqli_()PDO因爲mysql_()是由PHP社區沒有更多的維護..

閱讀紅色的大盒子here

而是使用這些mysqli_()

+0

問題是當我檢索發佈的值。感謝您的評論,但我不是一個專業人士,並且正在將此作爲一種業餘愛好。我正在通過自學來盡我所能。 – user1658170

+0

@ user1658170因此,我建議你在將數據發佈到數據庫之前始終對數據進行清理:)其次,使用'mysqli _()',我給了你一個鏈接,給它一個讀:) –

1

您可以使用PHP定界符爲HTML,字符串,PHP變量等混合起來:

http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

$content .= <<< END 
<tr><td>Location:</td> 
END; 

while($row = mysql_fetch_assoc($result)) { 

$dropdown_location .= <<< END 
    <option value="$row[location]">$row[location]</option> 
END; 
} 

$content .= <<< END 

<td><select name="location">$dropdown_location</select></td></tr> 

END; 

echo $content; 

請注意其建議不要在後有任何的自由空間包含END和END的行;