【问题标题】:mysqli, loops, and prepared statementsmysqli、循环和准备好的语句
【发布时间】:2010-02-15 18:58:35
【问题描述】:

好吧,我不经常使用 php 来记住它,当我回到它时。我对这个有点疯狂。我将在下面发布代码,但有一些快速解释。 con.php 是一个创建数据库连接 $wkHook 的 php 文件。连接完全没有问题,所以这不是我的问题。基本上,我从一个表中选择数据,存储它,然后循环遍历它。在那个循环中,我试图将数据插入另一个表。你会注意到我在循环中回显 $mid,这是为了让我知道循环本身正在工作。它正在工作。当我遍历 $mid 的每个值时,都会回显。然而,循环内的查询什么也不做。它甚至没有礼貌地抛出错误。它只是运行和循环,就好像查询不存在一样。

require('con.php');
$runonce=$wkHook->prepare("select moveId, Max, Hev, Work, Split, Rps from Movement order by movementId asc");
          $runonce->execute();
          $runonce->store_result();
          $runonce->bind_result($mid, $max, $hev, $wrk, $spt, $rps);
$user=1;

while($runonce->fetch())
{
    echo $mid."<br>";
    $runup=$wkHook->prepare("insert into Entry
(userId, movementId, Max, Hev, Work, Split, Rps)
values
(?, ?, ?, ?, ?, ?, ?)");
    $runup->bind_param('iisssss', $user, $mid, $max, $hev, $wrk, $spt, $rps);
    $runup->execute();
}
$runup->close();
$runonce->close();
$wkHook->close();

【问题讨论】:

标签: php mysql mysqli prepared-statement


【解决方案1】:

您似乎一遍又一遍地初始化数据库连接。尝试删除第二个内部require('con.php')

默认情况下,MySQL 错误不会被发送到浏览器,您需要调用 mysql_error() 或 mysqli_error 函数来查看出现了什么问题。在循环中的执行调用之后添加它以查看是否报告了错误:

echo mysqli_error() . '<br />';

【讨论】:

  • 是的,原来我试过没有第二次初始化。我认为这是问题所在。它不是,我忘了删除它。我现在会改变它。
  • 所以,澄清一下,这不是问题所在。问题仍未解决。
  • @robert knobulous:明白了。我刚刚更新了我的答案,这些内容应该可以为您提供有关潜在问题的更多信息。让我知道情况如何。
  • @robert knobulous:Np,很高兴听到这个消息。
猜你喜欢
  • 2014-11-14
  • 1970-01-01
  • 2011-03-07
  • 1970-01-01
  • 2012-12-01
  • 2012-04-04
  • 2011-07-01
相关资源
最近更新 更多