我对这个准备好的声明有一些真正的问题,我不知道为什么。我想知道是否有人可以帮助我。我知道我正在发送正确的信息,并且我知道该信息存在于我要查找的位置,但准备好的语句根本不返回任何内容。
我这样调用 PHP 文件
$.ajax({
type: "POST",
url: "include/main.php",
data: {func:'LoadThisFile',thefile:NewItemFilename},
success: function(server_response)
{
if(server_response)
{
Doing stuff....
}
return;
}
});
这是准备好的声明
$stmt = $mysqli->prepare("SELECT `FileData` FROM `DataTable` WHERE `Filename`=?");
$stmt->bind_param("s", $tTheFilename);
$tTheFilename = $ThisFileName;
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
echo $result;
$stmt->close();
$mysqli->close();
我已经检查并仔细检查:
发送到准备好的语句的变量 NewItemFilename 恰好包含我期望它包含的内容。
数据库和表都存在,我试图返回的数据也存在,事实上,如果我在 phpMyAdmin 中使用完全相同的语句,以及我试图返回的文件名,我就会得到我想要的结果来自准备好的声明。
通过使用 echo 命令,我可以知道正在建立数据库连接,并且语句本身似乎没有抛出任何错误。除了没有返回任何内容之外,一切似乎都正常工作。
谁能告诉我我做错了什么?
非常感谢,BS
最佳答案
必须存储执行结果。
尝试 $stmt->store_result();在 $stmt->fetch();
之前关于php - 无法使这个准备好的选择语句起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10782387/