为什么一个php语句工作而另一个不工作?

时间:2017-05-05 01:55:24

标签: php mysqli

在下面的代码片段中,我了解mysqli_fetch_row仅适用于列的索引(0,1,2等),而不适用于列名。

但我考虑使用列号/订购不良做法(如果订单改变了怎么办?)。

如何返回单行,然后使用列名来获取数据?

  $query = "Select * from users where UserEmail = '" . $UserEmail . "' LIMIT 1";

  $result = mysqli_query($connection, $query);

  $num_rows = mysqli_num_rows($result);
  $row = mysqli_fetch_row($result);

  $arr = $result->fetch_assoc();
  $log->lwrite('Works / value: ' . $row[0]);
  $log->lwrite('Does not work / value: ' . $arr['userID']);

1 个答案:

答案 0 :(得分:0)

它不起作用,因为fetch_row将结果的指针移动到第二行。并且没有第二行,因为您的查询中有LIMIT。

只需删除第一次获取即可。

$query = "Select * from users where UserEmail = '" . $UserEmail . "' LIMIT 1";

$result = mysqli_query($connection, $query);

$arr = mysqli_fetch_assoc($result);
$log->lwrite('Does work now / value: ' . $arr['userID']);

将面向对象的风格与程序风格混合也被认为是不好的做法。我在这里使用了第二个。