0

特定の情報を追加および更新できるようにしたい。これで、データベースに送信されるテキストに引用符が含まれているとスクリプトが機能しなくなることがわかるまで、すべて正常に機能していました。

そこで、いくつかの調査を行ったところmysql_real_escape_string()、引用符を無視するために関数を使用する必要があることがわかりました。これを実行しましたが、スクリプトがまったく機能しなくなりました。問題はクエリ部分にあると思いますが、問題はわかりません。以下はコードです:

<?php
if(isset($_POST['bevestiging']))
{   
    $ID = (int)$_GET['ID'];

    $titel = mysql_real_escape_string($_POST['Titel']);
    $ondertitel = mysql_real_escape_string($_POST['ondertitel']);
    $wanneer = mysql_real_escape_string($_POST['wanneer']);
    $datum = mysql_real_escape_string($_POST['datum']);
    $afbeelding = mysql_real_escape_string($_POST['afbeelding']);
    $intro = mysql_real_escape_string($_POST['intro']);
    $main = mysql_real_escape_string($_POST['main']);

    $query = "UPDATE voorstellingen 
              SET '$titel','$ondertitel','$wanneer','$datum','$afbeelding','$intro','$main' 
              WHERE id = $ID";

    mysql_query($query) or die('Error, bewerken van voorstelling is mislukt');  
    $query ="FLUSH PRIVILEGES"; 
    echo"De voorstelling is succesvol bewerkt";
}
else{

    $ID = (int)$_GET['ID'];
    $query="SELECT * FROM voorstellingen WHERE id = $ID";
    $result = mysql_query($query) or die('Error, bewerken van voorstelling is     mislukt');;
?>
4

2 に答える 2

4

更新クエリは次のようになります。

$query = "UPDATE voorstellingen SET title = '".$titel."' .....";

参照:UPDATE構文

于 2012-06-14T10:35:00.953 に答える
0

mysql_real_escape_string関数はFALSEエラーを返します。以下の行の返品タイプを確認できます

$titel = mysql_real_escape_string($_POST['Titel']);

それが成功するかどうかを確認します。次の行を確認する必要はありません。最初の関数呼び出しでエラーが発生した場合は、関数を呼び出す前にSQL接続が存在しないことを意味している可能性があります。使用する前にMySQL接続が必要なため、mysql_real_escape_string()それ以外の場合はレベルのエラーE_WARNINGが生成され、FALSE返されます。

上記の提案で問題が解決しない場合は、どのエラーがどの行で発生しているのかを詳しく説明してください。

于 2012-06-14T10:58:21.667 に答える