在mysql查询中使用php变量?卡住了
这是我的代码,每次它都将$query和$query->num\u行返回为NULL。 我确信我的桌子上有“mehdijjz”(美元usr)。 我认为问题在于$sql代码的语法。在mysql查询中使用php变量?卡住了,php,mysql,session,Php,Mysql,Session,这是我的代码,每次它都将$query和$query->num\u行返回为NULL。 我确信我的桌子上有“mehdijjz”(美元usr)。 我认为问题在于$sql代码的语法。 我太困了…:(你怎么看?看,这就是为什么我讨厌程序化的mysqli API。如果你习惯了mysqli API,那么你的参数就错了 无论如何,你应该 使用准备好的语句注入查询值 在php.iniconfig文件中为开发启用正确的错误报告 //check if the username which the user enter
我太困了…:(你怎么看?看,这就是为什么我讨厌程序化的mysqli API。如果你习惯了mysqli API,那么你的参数就错了 无论如何,你应该
php.ini
config文件中为开发启用正确的错误报告
//check if the username which the user entered exists in the database
$usr = $_SESSION['username'];
$sql = "SELECT * FROM `login` WHERE username = '".$usr."'";
$query = mysqli_query($sql,$conn);
//if u found any row with that condition...
if ($query->num_rows != 0)
{
//some code here.....
}
error_reporting = E_ALL
display_errors = On
也许
$query=mysqli\u查询($conn,$sql);
会有帮助吗?我看不出SQL中有语法错误,但请务必研究使用准备好的语句,而不是像那样将值连接到SQL字符串中。您这样做应该是可行的,但对您的数据库不安全。此外,您的问题中的代码中没有包含这一点,因此您可能已经在这样做了,但在您之前尝试执行任何查询,确保您有一个正常运行的数据库连接。同时确保会话确实已启动。谢谢您的回答对我帮助很大!
// make mysqli throw exceptions
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$stmt = $conn->prepare('SELECT 1 FROM `login` WHERE `username` = ?');
$stmt->bind_param('s', $_SESSION['username']);
$stmt->execute();
if ($stmt->fetch()) {
//some code here.....
}