我希望有人可以帮助我吗?这是我基于会话变量的select语句。
$users = 'SELECT * FROM wbcusers WHERE username = "'.$_SESSION['user'].'" ';
如果会话变量'user'存在,我希望能够进行选择...如果不存在,我不想选择任何内容并取消数据库查询,因此看不到'Notice:Undefined index:error通知吗?
在此方面的任何帮助将不胜感激。
谢谢。 史蒂夫
答案 0 :(得分:1)
首先将用户数组设置为空数组,然后在且仅当设置了所需的会话变量时,才用数据填充它。
$users = [];
if (isset($_SESSION['user'])) {
$sql = "SELECT * FROM wbcusers WHERE username = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([$_SESSION['user']]);
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
P.S .:请使用上述查询参数,而不要使用难看的字符串concat废话。编写代码更容易,而且您不必担心SQL注入漏洞。
答案 1 :(得分:-2)
if (isset($_SESSION['user'])) {
$users = 'SELECT * FROM wbcusers WHERE username = "'.$_SESSION['user'].'" ';
....
}
else
{
//something else
}