php
  • mysql
  • 2014-02-16 150 views 1 likes 
    1

    好吧,我有一個表單數據和php文件,它將表單數據發送到MYSQL。 據我所知,我的SQL命令將撇號解釋爲關閉語法或其他內容,並且不會插入它們。 但是我有一個字符串替換所有撇號。這似乎工作,直到我插入變量到HTML並嘗試再次插入它們。 見下面從包含變量的表單插入變量到MYSQL

    $c1=$_POST['c1']; 
    $c1a=str_replace("'", "''", "$c1"); 
    
    $report= ' 
    <html> 
    <body> 
    <p align=\」left\」><strong>Comments:</strong></p> 
        <p align=\」left\」> 
        '.$c1a.' 
         <br> 
        </p></td><html> '; 
    

    當我嘗試插入$報告到我的SQL它不會讓他走,彷彿字符串替換從來沒有發生過。但我知道這是因爲當我回顯$ report來測試它時,所有的撇號都被替換了。這是怎麼回事!

    此外,我已經測試了多次,插入工程時,我的表單數據不包括撇號。

    +0

    什麼是數據庫字段定義爲? VARCHAR? PHP腳本中的SQL插入代碼是什麼樣的? – pscs

    +0

    '''對於html來說是無效的引號。 –

    回答

    0

    您必須在單引號前添加反斜槓。你可以使用函數mysql_real_escape_string()(或mysqli_real_escape_string())來做到這一點。

    相關問題