Php 当WHERE参数为空或不存在时,如何取消select语句?
我希望有人能在这方面帮助我?下面是基于会话变量的select语句Php 当WHERE参数为空或不存在时,如何取消select语句?,php,database,if-statement,session,Php,Database,If Statement,Session,我希望有人能在这方面帮助我?下面是基于会话变量的select语句 $users = 'SELECT * FROM wbcusers WHERE username = "'.$_SESSION['user'].'" '; 我希望能够选择会话变量“user”是否存在。。。如果没有,我不想选择任何内容并取消数据库查询,这样我就不会看到“通知:未定义索引:错误”通知 如果您能为我们提供帮助,我们将不胜感激 多谢各位。 Steve最初将用户数组设置为空数组,然后仅当您需要的会话变量已设置时,才使用数据填
$users = 'SELECT * FROM wbcusers WHERE username = "'.$_SESSION['user'].'" ';
我希望能够选择会话变量“user”是否存在。。。如果没有,我不想选择任何内容并取消数据库查询,这样我就不会看到“通知:未定义索引:错误”通知
如果您能为我们提供帮助,我们将不胜感激
多谢各位。
Steve最初将用户数组设置为空数组,然后仅当您需要的会话变量已设置时,才使用数据填充该数组
$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);
}
注意:请使用上述查询参数,而不是难看的字符串concat。编写代码更容易,而且您不必担心SQL注入漏洞
$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);
}