0

HORSEテーブルと列からデータベースからファイル名を取得しようとしていますHORSE_IMAGE

$path = "horse_images/".$row["HORSE_IMAGE"];
$query = "DELETE FROM HORSE WHERE HORSE_ID=".$_GET["horseno"]." AND HORSE_IMAGE=".$row["HORSE_IMAGE"];

現在HORSE_IMAGEは何も返されませんが、HORSE_IDまたはに変更するHORSE_NAMEと機能します。

つまり、エコー$row["HORSE_NAME"]すると「You Beauty」が返されます。

データベースの行を調べると、ファイル名shop-1.jpgがそこにあることがわかります。

何か案は?

4

2 に答える 2

1

行の 1 つの列を変更する場合は、UPDATE ステートメントを使用します。DELETE は、完全な行のみを削除するためのものです。はい、クエリで使用する前に何かをエスケープしてください。

"UPDATE HORSE SET HORSE_IMAGE = NULL WHERE HORSE_ID=".(int)$_GET["horseno"];
于 2013-09-16T09:42:54.057 に答える
1

私が質問を理解している限り、ToBe の答えは正しいかもしれませんが、Sql インジェクションを防ぐために、MySql クエリに PDO を使用することを検討する必要があります。試す:

<?php

  $query = "UPDATE HORSE SET HORSE_IMAGE = NULL WHERE HORSE_ID = ?";

  $db = new PDO(dsn, username, password);
  $prep = $db->prepare($query);

  $res = $prep->execute(array((int)$_GET["horseno"]));

?>

ドキュメントを見てみましょう: http://php.net/manual/de/book.pdo.php

于 2013-09-16T11:45:55.470 に答える