【问题标题】:Retrieve SQL statement from MySQL and process in PHP从 MySQL 中检索 SQL 语句并在 PHP 中处理
【发布时间】:2013-02-26 01:46:10
【问题描述】:

我已经成功地将一些 SQL UPDATE 语句保存到 MySQL,现在我想检索它们并让 PHP 处理它们。代码如下。

当我回显 $query 时,我从数据库中获得了正确的 SQL 语句,但是当我尝试处理它们时,我收到一个错误警告:mysqli_query() [function.mysqli-query]: Empty query

这对我来说毫无意义,让我发疯!我是否必须对 $query 执行其他操作以便 PHP 可以处理它?

    $num_rows = mysqli_num_rows($resultSQL);
if ($num_rows > 0)
{
    while ($row = mysqli_fetch_array($resultSQL))
        {
            $strSQLupd[] = $row['uSQL'];
        }
        foreach ($strSQLupd as $query) {
            $resultSQLupd = mysqli_query($link, 
            $query
            );
            if (!$resultSQLupd)
            {
                $error = 'Error fetching data: ' . mysqli_error($link);
                include 'error.html.php';
                exit();
            }
        }
}

【问题讨论】:

  • 你试过 var_dump($strSQLupd) 看看是否设置正确吗?

标签: php sql


【解决方案1】:

您是否在某处设置了 $link 的值,并且您在此应用程序中执行的操作是否需要它?另外,请记住var_dump($varname); 始终是一个有用的调试工具。

    foreach ($strSQLupd as $query) {
        // put a var_dump below
        var_dump($query);
        $resultSQLupd = mysqli_query($query
        );
        if (!$resultSQLupd)
        {
            $error = 'Error fetching data: ' . mysqli_error($link);
            include 'error.html.php';
            exit();
        }
    }

试一试,看看转储到屏幕上的查询字符串。它可能是 null ,这就是产生错误的原因。

【讨论】:

  • 我把var_dump放进去,得到string(0) "",很明显这个字符串是空的。所以,有两个问题......(1)我该如何解决这个问题;以及(2)为什么 echo 会起作用?
  • 啊哈...我发现了问题。像往常一样,它在其他一些代码中。我正在检索的数据中有一些 NULL 值。所以,echo 可以工作,但 PHP 没有 SQL 可以处理。 var-dump 帮助找到了问题,非常感谢 ;)
  • @user2042038 太棒了!我很高兴它帮助您找到了问题。我在开发中一直使用变量转储。当然,这样做并不能替代使用实际的调试器,但它是一种快速可视化数据的方法。
  • 在我回答的最后一句中,我建议空查询字符串可能会导致错误。 +为我! ;0
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多