gpt4 book ai didi

php - 无法从sql数据库获取结果

转载 作者:行者123 更新时间:2023-11-29 11:15:23 25 4
gpt4 key购买 nike

我对 php 很陌生,我正在尝试创建一个登录系统。这是我的代码

<?php

$con=mysqli_connect("XXXXXXX","XXXXXXXX","XXXXXXXXX","XXXXXXXXXX");

if (!$con)
{
echo "failed to connect";
}

$username = $_POST['username'];
$password = $_POST['password'];

$sql = "SELECT userID FROM users WHERE username = $username and password = $password;";

if (!$sql) {
echo 'query invalid'.mysql_error();
}

$result = mysql_query($sql);

echo "$result";

$row = mysqli_fetch_array($sql, MYSQLI_ASSOC);

$active = $row['active'];

$count = mysqli_num_rows($result);

mysql_close($con);

?>

我确信连接没有问题。但我的结果没有显示,也没有错误消息。以前我有一个 IF 语句,如果结果返回则执行进一步的操作。因为我想弄清楚发生了什么,所以我删除了那部分。请有人帮忙。非常感谢

最佳答案

您缺少变量周围的单引号,而且您将 mysql 与 mysqli 混合使用,这将不起作用。

$sql = "SELECT userID FROM users WHERE username = '$username' and password = '$password';";
$result = mysqli_query($con, $sql);

$row = mysqli_fetch_assoc($sql); // same as fetch_array with MYSQLI_ASSOC

$active = $row['active'];

$count = mysqli_num_rows($result);

最后不需要mysql_close,但如果你想使用它,那就是mysqli_close($con);请记住,这是不安全的。

使用此函数过滤用户输入:

$username = mysqli_real_escape_string($con, $_POST['username']);
$password = mysqli_real_escape_string($con, $_POST['password']);

Read this确保您的代码遵循安全标准。

关于php - 无法从sql数据库获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39842681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com