我有一个问题,当我查询时,我总是得到相同的结果(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。
答案 0 :(得分:1)
$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
调用应修复它。