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_IDor HORSE_NAME,它可以工作。

即,如果我回显$row["HORSE_NAME"]它会返回“You Beauty”。

如果我在数据库中查找该行,我可以看到文件名shop-1.jpg在那里。

有任何想法吗?

4

2 回答 2

1

据我了解这个问题,ToBe 的回答可能是正确的,但你真的应该考虑使用 PDO 进行 MySql 查询,以防止 Sql 注入。尝试:

<?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 回答
1

如果要更改行的单个列,请使用 UPDATE 语句。DELETE 仅用于删除完整的行。是的,在您的查询中使用它之前转义任何东西。

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