【问题标题】:MySQLi problems with fetch_rowMySQLi 的 fetch_row 问题
【发布时间】:2014-01-27 16:38:02
【问题描述】:

在从数据库中获取一行数据时,我遇到了 MySQLi 的问题。

$select="SELECT * FROM table";
$arows = $mysqli->query($select);
while ($arow = $arows->fetch_row()) {

现在我遇到的问题是不合逻辑的,因为我得到的函数 fetch_row() 是一个非对象错误。但是,具有过程函数的相同代码可以正常工作。

while ($arow= mysqli_fetch_row($arows)) {

我省略了连接细节,因为在两个示例中它们是相同的。

【问题讨论】:

  • 查询失败了吗?
  • 这是你的真实代码吗?如果是,则需要在反引号中引用表名,因为table 是保留字。
  • 我猜你使用的东西影响了if ($result = mysqli_query($mysqli, $query)) {
  • 名称已更改以保护无辜者,并且我使用了 if 语句以及 ||死;既不会从查询中抛出错误。现在程序调用不应该工作(因为它使用对象)但它比对象更好。
  • 查询成功并且mysqli_fetch_row正确返回,我觉得这不应该工作(因为它混合了过程和面向对象的代码)但是它可以工作,而面向对象的代码却没有。

标签: php mysql mysqli


【解决方案1】:

您不能对过程接口和对象接口使用完全相同的连接代码。

要连接对象接口,您需要像这样运行对象构造函数:

$mysqli = new mysqli("example.com", "user", "password", "database");

如果 $mysqli 构造不正确,您的 $mysqli->query() 调用可能会返回错误。这会导致你的问题。

很多人放

 || die ('message');

在他们的 dbms 调用来捕获这类事情之后。

【讨论】:

  • 我实际上是使用对象接口连接到数据库,我尝试了模具,但它仍然在 fetch_row 处失败。它让我发疯,直到我发现了程序并且只交换了那行代码并且它起作用了!?!
猜你喜欢
  • 1970-01-01
  • 2017-09-07
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 2013-07-11
  • 1970-01-01
  • 2012-10-12
  • 2014-07-02
相关资源
最近更新 更多