mysqli_stmt_bind_param会导致致命错误:内存大小耗尽


mysqli_stmt_bind_param causes fatal error: memory size exhausted

我认为这是一个非常简单的查询:

$qry="SELECT taglink, tagtitle, tagshow FROM taglist_main WHERE tag = ?";
if ($stmt = mysqli_prepare($link,$qry)) {
    mysqli_stmt_bind_param($stmt,"s",$qstring);
    mysqli_stmt_execute($stmt);
    mysqli_stmt_bind_result($stmt,$taglink,$tagtitle,$tagshow);
    mysqli_stmt_store_result($stmt);
    echo "<p><strong>".mysqli_stmt_num_rows($stmt)."</strong> entries found, shown below.</p>";                         
    while (mysqli_stmt_fetch($stmt)) {
        echo "<li><a href='"/$taguri'" title='"$tagtitle'">$tagshow</a></li>";
    }
mysqli_stmt_close($stmt);

然而,php似乎不这么认为。运行查询时,出现以下错误:

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 4294967296 bytes) in /home/envoyenv/public_html/envoytest/tags/index.php on line 110

使用mysql_stmt_bind_param线时。如果我省略该行并调整 SELECT 语句以直接使用字符串变量$qstring,我不会在屏幕上显示任何结果(实际上,屏幕上没有显示任何内容,甚至没有显示echo

这不是一个特别大的表(少于 300 行),此查询应返回 10 行左右(并且 SELECT 语句在 phpmyadmin 中工作正常,返回预期结果)

我做错了什么?


编辑:

我已经检查过以确保$qstring实际上是一个字符串:这是var_dump的结果:string(14) "风险评估"

在@andrewsi的帮助下:

交换mysqli_stmt_bind_result($stmt,$taglink,$tagtitle,$tagshow);行和mysqli_stmt_store_result($stmt);行的顺序,以便代码片段现在为:

$qry="SELECT taglink, tagtitle, tagshow FROM taglist_main WHERE tag = ?";
if ($stmt = mysqli_prepare($link,$qry)) {
    mysqli_stmt_bind_param($stmt,"s",$qstring);
    mysqli_stmt_execute($stmt);
    mysqli_stmt_store_result($stmt);
    mysqli_stmt_bind_result($stmt,$taglink,$tagtitle,$tagshow);
    echo "<p><strong>".mysqli_stmt_num_rows($stmt)."</strong> entries found, shown below.</p>";                         
    while (mysqli_stmt_fetch($stmt)) {
        echo "<li><a href='"/$taguri'" title='"$tagtitle'">$tagshow</a></li>";
    }
mysqli_stmt_close($stmt);

希望这对那些仍然喜欢编写过程代码的人有用。

这是一个

PHP内存错误:"致命错误" 这实际上与MySQL无关,因为MySQL会产生不同的错误。问题是,PHPMyAdmin运行在cPanel后端,该后端单独安装了PHP和Apache,因此资源限制设置得更高。您的 PHP 脚本在具有较低规格的单独 PHP 环境中运行。我会和你的主机一起提高你的PHP内存限制阈值,或者看到下面的链接。

提高内存限制

相关文章: