我目前正在将 PHP 脚本从 5.4 版本的 PHP 服务器转换为 5.3 版本的 PHP 服务器
我立即注意到我们的登录脚本中有一个奇怪的行为。
在对脚本进行了一番分析之后,我找到了问题的根源。
对 $result->fetch_row 中第一行成员的调用无效。
$result 的声明如下所示:
$username = $mysqli->real_escape_string(strtolower($_POST["USERNAME"]));
$password = $mysqli->real_escape_string(md5(strtolower($_POST["PASSWORD"])));
$result = $mysqli->query("SELECT * FROM $table WHERE username='$username' AND password='$password'");
但是,出于本能,我检查了是否正确调用了 data_seek;我有。
打印出 fetch_row() 函数给了我以下结果
数组([0] => 3 [1] => admin [2] => d76362b0f640fbcf869033b5e4d1c4bf [3] => Mr [4] => Rasmus [5] => 4 [6] => [7] => 0)
因此,该阵列正在工作。
但是下面的声明不起作用。
$Title = $result->fetch_row()[3];
因此,我尝试将整行存储在单个数组对象中,然后单独调用所有子成员。
像这样:
$row = $result->fetch_row();
$Title = $row[3];
它工作得很好。
怎么会?这个声明有什么问题:
$Title = $result->fetch_row()[3];