1

クエリは

$sql = "update students set status = 'active', student_password='{$password}' where student_id ='".$_GET['id']."'";

結果を次のように表示します

update students set status = 'active', student_password='50d0d53f546b7' where student_id ='112s23dd'

エラーが来る

Unknown column '112s23dd' in 'where clause'

where句にint値を入れると正常に動作しますが、文字で動作しませんstudent_idは主キーvarchar(30)
ですもう1つの奇妙なことは、そこに貼り付けるとphpmyadminで動作しますが、これを実行すると動作しませんウェブページ

4

3 に答える 3

1

バグを見つけたようです:

http://www.sqlfiddle.com/#!2/56e3e/1

コードを PHPMyAdmin に直接実行してテストすることができる場合は、Mysql のバージョンも提供してください。

于 2012-12-18T21:00:57.313 に答える
1

いただいたデータをいじってみました。あなたのクエリは問題なく動作します。その間、ウェブサイトのデータベースを更新していないか、列「student_id」のタイプを変更していない場合に問題が発生する可能性があると思います。サーバー上のデータベースを再確認してください。

于 2012-12-18T21:29:23.977 に答える
0

これを試して:

    mysql_query("update `students` set `status`='active', `student_password`='{$password}' where `student_id`='" . mysql_real_escape_string($_GET['id']) . "'") or die(mysql_error());

それを使用すると、このクエリが実行されない理由がわかります。

于 2012-12-18T21:32:12.063 に答える