2013-05-30 183 views
3

我希望從MySQL數據中下拉我想要的<option value ='and acode ='Aircraft1''>,包括兩個單引號將其傳遞到查詢中。我已經包括反斜槓,但它不起作用。我的代碼有什麼問題?在字符串中包含單引號

<?php  
$asql = "SELECT * FROM aircraft"; 
$aresult = mysql_query($asql); 
?> 
Aircraft: 
<select name="aircraft"> 
<option value="and (acode = 'RP-C1086' or acode='RP-C1728')" checked/>All</option> 
<?php while($arow=mysql_fetch_array($aresult)) 
{ 
    echo "<option value='and acode=\'".$arow['reg']."\''>".$arow['reg']."</option>"; 
} ?> 
</select> 
+0

首先您必須退出使用mysql_ *,因爲它已被棄用,那麼您應該瞭解準備好的語句以防止注入。使用mysqli或PDO!而不是'echo'「;''echo' 「;' – Prix

回答

4

MySQL manual

有幾種方式,包括字符串中的引號字符:

  • 一個「'」「'」引用字符串可以寫成「''」內。

  • A 「"」裏面的一個字符串引用「"」可能寫成「""」。 (「\」)前引號字符。

  • A 「'」裏面用「"」引用的字符串不需要特別處理,不需要加倍或逃脫。以同樣的方式,「"」裏面用「'」引用的字符串不需要特殊處理。

當在PHP編碼,記得使用\\在字符串文本字符串值中獲得一個\

如果您想要跳過HTML屬性中的引用,請將'替換爲&quot;。或者,用"引用屬性值。無論字符串值來自哪裏,這些都是使用的技巧。請參閱this thread

+0

我想要單引號'' '在字符串中,而不是斜線。 – xjshiya

+0

@xjshiya - 啊。那麼這不是MySQL的問題。我更新了我的答案。 –

+0

不知道'"'存在。非常感謝! :) – xjshiya

相關問題