-2
<?php

if (isset($_GET['firstname'])){
    $fname = $_GET['firstname'];
}

mysql_query("UPDATE student SET firstname = $fname WHERE studentID = $id");

?>

データベースを更新するフォームがあります。フォームの下部に更新ボタンがあります。このコードを使用すると、機能しません。

mysql_query の $fname と書かれている場所に "tom" を入れると、更新されます。

$fname 変数をエコーアウトすることもできます。これにより、フォームの内容が正しくエコーアウトされます。

しかし、データベースに $fname を取得させることはできません。

どんな提案も素晴らしいでしょう、ありがとう。

4

2 に答える 2

2

名前の周りの引用符を忘れました:

mysql_query("UPDATE student SET firstname = '$fname' WHERE studentID = $id");

ところで、あなたのコードは SQL インジェクションに対して脆弱です。その問題を解決してください。php で SQL インジェクションを防止する最善の方法を参照してください。

于 2012-11-30T15:04:00.643 に答える
1

$fnameand $id(文字列の場合) を一重引用符で囲みません。

mysql_query("UPDATE student SET firstname = '$fname' WHERE studentID = '$id'");

注: Mysql_* 拡張機能は非推奨であり、SQL インジェクションに対してオープンです。したがって、それらの使用は避けてください。代わりに PDO または Mysqli_* を使用してください。

于 2012-11-30T15:04:09.623 に答える