我有这个登录脚本:
if (isset($_POST['submit'])) {
$_POST = db_escape($_POST);
if (!empty($_POST['name']) && !empty($_POST['pass'])) {
$sql = "SELECT id FROM users
WHERE name='{$_POST['name']}'
AND pass='{$_POST['pass']}'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) == 0) {
header("Location: index.php?badlogin=");
exit;
}
$_SESSION['sess_id'] = mysqli_result($result, 0, 'id');
$_SESSION['sess_name'] = $_POST['name'];
header("Location: com.php");
} else {
$status = "Fyll i alla fälten.";
}
}
现在,当我尝试登录时,我得到了
致命错误:调用未定义的函数mysqli_result() 第20行的D:\ xampp \ htdocs \ fbook \ index.php
这是为什么?我正在将mysql_ *转换为mysqli_ *,所以我之前没有使用过mysqli,真的。 mysqli_result()不再是一个函数吗?如果是这样,我应该用{<1}}替换什么?
提前谢谢! / J
答案 0 :(得分:1)
因为您使用的是mysqli_num_rows($result)
。 num_rows
不是函数。它可以像这样使用:
$num_rows = $mysqli_result->num_rows;
改为使用mysqli_fetch_assoc()
:
while($row = mysqli_fetch_assoc($result)) {
// your stuff
}
答案 1 :(得分:0)
试试这个。
if (isset($_POST['submit'])) {
$_POST = db_escape($_POST);
if (!empty($_POST['name']) && !empty($_POST['pass'])) {
$sql = "SELECT id FROM users
WHERE name='{$_POST['name']}'
AND pass='{$_POST['pass']}'";
$result = mysqli_query($conn, $sql);
if ($result->num_rows == 0) {
header("Location: index.php?badlogin=");
exit;
}
else
{
$fetch = $result->fetch_row();
$_SESSION['sess_id'] = $fetch[0];
$_SESSION['sess_name'] = $_POST['name'];
header("Location: com.php");
}
} else {
$status = "Fyll i alla fälten.";
}
}
我希望它不会给出任何错误。
由于
答案 2 :(得分:-3)
要么学习如何正确使用mysqli,要么保留旧的基于mysql的代码。你现在在做什么并不值得麻烦。