我有一个问题,当我做我的查询我总是得到相同的结果(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.
请参考如何使用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
等其他变量
您不需要对整个查询字符串使用转义函数,特别是。这是一个用于特殊情况的低级函数。
将查询直接放入prepare
调用中应该可以解决这个问题。