0

Mysql Php の更新でいくつかの問題に直面しています。

これが私が使用しているコードです

    $email = $_REQUEST['email'];
    $name  = $_REQUEST['name'];
    $char ='this is chara'; //$_REQUEST['character'];
    $des  = $_REQUEST['des'];
    $id = $_REQUEST['id'];

$sql_update = "UPDATE cast SET name ='".$name."',Gendor ='".$email."', character = \'ashokkumar2\',description ='".$des."' WHERE id = '".$id."'";
$result=mysql_query( $sql_update);
if ($result){
    echo 1;
}
4

3 に答える 3

2

まず第一に、スクリプトはSQL インジェクションに対して完全にオープンであるため、代わりにPDOを使用する mysql_* 関数を使用しないでください。

character = \'ashokkumar2\' 

する必要があります

`character` = 'ashokkumar2' 

characterはMySQLの予約語であるため、チルダで単語をエスケープする必要があります。予約語の問題を回避するもう 1 つの方法は、列に複数の単語をアンダースコアで区切った名前を付けることcharacter_nameです。

さらに情報が必要な場合は、クエリを実行した後にmysql_error()の出力を出力してください。

PDOまたはMySQLiを使用する代わりに mysql_* を使用しないでください。

于 2013-03-14T04:55:33.147 に答える
0

上記の答えがうまくいかない場合は、次の出力をコピーして貼り付けてください: print $sql_update

たぶん、これは答えをより明確にしてくれます。

于 2013-03-14T04:56:21.927 に答える
0

これを試して

$sql_update = "UPDATE cast SET name=$name,Gendor=$email,character='$char',description=$des WHERE id = $id";
$result=mysql_query($sql_update);
if ($result){
    echo 1;
}
于 2013-03-14T04:51:24.127 に答える