php - 无法使这个准备好的选择语句起作用

标签 php mysql prepared-statement

我对这个准备好的声明有一些真正的问题,我不知道为什么。我想知道是否有人可以帮助我。我知道我正在发送正确的信息,并且我知道该信息存在于我要查找的位置,但准备好的语句根本不返回任何内容。

我这样调用 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/

相关文章:

php - 如何在 php 中使用 serializeArray 值?

php - 重用准备好的语句会产生段错误

PHP cURL 不起作用 - Windows 7 64 位上的 WAMP

php - Moodle 接受来自外部站点的登录

MySQL(+),什么意思?

mysql - 使用 MySQL 函数将字符串的第一个字符移动到字符串的末尾

php - 忽略 MySQL REGEXP 查询中的常用词 (the, and)

具有多个值的 PHP PDO-MySQL 准备好的语句

php - PDO 准备语句的语法错误

phpspec 单元测试 - 使用 ioc/service registry 来交付要测试的具体类