从PHP中的查询获得相同的错误结果

时间:2014-06-25 15:23:53

标签: php mysql mysqli

我有一个问题,当我查询时,我总是得到相同的结果(2),它没有得到正确的ID值:

    $query = $this->mysqli->real_escape_string("SELECT id FROM image WHERE file_name = ?");

    $stmt = $this->mysqli->prepare($query);
    $stmt->bind_param("s", $this->name);
    $stmt->execute();
    $stmt->store_result();
    $stmt->bind_result($id);

    if($stmt->num_rows == 1)
    {
        var_dump($stmt->id);
        var_dump($id);
    }

结果总是:

$int(2)
NULL

我甚至没有该表中的ID值。 注意:此查询适用于phpmyadmin。

2 个答案:

答案 0 :(得分:1)

RTM how to use mysqli

$stmt = $this->mysqli->prepare("SELECT id FROM image WHERE file_name = ?");
$stmt->bind_param("s", $this->name);
$stmt->execute();
$stmt->bind_result($id);
$stmt->fetch();

var_dump($id);
  • 你没有逃避整个查询
  • 您不需要store_result
  • 您需要fetch
  • 您需要var_dump您绑定的变量,而不是其他变量,例如$stmt->id

答案 1 :(得分:0)

您不需要在整个查询字符串上使用转义函数,尤其是。对于特殊情况,这是一个低级功能。

将查询直接放入prepare调用应修复它。