在下面的代码片段中,我了解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']);
答案 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']);
将面向对象的风格与程序风格混合也被认为是不好的做法。我在这里使用了第二个。