【问题标题】:MySQLi Fetch ObjectMySQLi 获取对象
【发布时间】:2011-03-10 14:29:02
【问题描述】:

可以吗

$TEST = $LINK->query("SELECT * FROM `users`");
while($ROW = $TEST->fetch_object() && $MAX_ROWS < 16){
  $MAX_ROWS++;
  //more code
}

我知道您可以在查询末尾添加限制 0,16,但我想知道这种语法是否有效,因为它似乎失败了。

对不起,我只是想尽可能多地学习。

【问题讨论】:

  • 是的,这有点重新发明轮子;)
  • 什么失败了? $LINK-&gt;error 说什么? $MAX_ROWS 是否初始化为 0?这看起来可行。

标签: php mysqli while-loop


【解决方案1】:

试试这个(添加了一些括号):

$TEST = $LINK->query("SELECT * FROM `users`");
while(($ROW = $TEST->fetch_object()) && $MAX_ROWS < 16){
  $MAX_ROWS++;
  //more code
}

【讨论】:

  • 谢谢你的工作,但你为什么需要括号,&& 不应该在那之后显示它的新东西吗?
  • 不,PHP 会认为你的意思是:$var = (fetch && max_rows),&& 的界限比 "="
  • 什么 $var 最终会追求这样的东西?
  • 哦,所以 $var 最终是 fetch && max_rows 的结果?
  • 因为当你使用 $ROW->id 或其他什么时,它会失败,因为 $ROW 等于 true,哇,谢谢我把头发拉出来了,哈哈
【解决方案2】:

我知道您可以在查询末尾添加限制 0,16,但我想知道这种语法是否有效,因为它似乎失败了。

这应该行得通。它是否因错误而失败?

<?php
$max_rows = 0;
$test = true;
while( $test && $max_rows < 16 ) {
   $max_rows++;
   // rest.
}

这对我有用,结果应该是一样的吗?

编辑:Tobiask 是对的。如果你使用 "$row = mysqli_fetch_object( $result ) && $max_rows

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-29
    • 2017-05-10
    • 2013-11-25
    • 1970-01-01
    相关资源
    最近更新 更多