我对这个准备好的陈述有一些实际问题,我不知道为什么。我想知道是否有人可以帮助我。我知道我正在发送正确的信息,而且我知道这些信息存在于我正在寻找的地方,但准备好的声明根本不会返回任何内容。
我正在调用这样的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答案 0 :(得分:1)
必须存储结果的执行。
尝试$ stmt-> store_result();在$ stmt-> fetch();
之前答案 1 :(得分:0)
您没有展示如何初始化$tTheFilename
。 Assumin它的内容是正确的你应该绑定params
$stmt->bindParams(1, $tTheFilename);