Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 当WHERE参数为空或不存在时,如何取消select语句?_Php_Database_If Statement_Session - Fatal编程技术网

Php 当WHERE参数为空或不存在时,如何取消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最初将用户数组设置为空数组,然后仅当您需要的会话变量已设置时,才使用数据填

我希望有人能在这方面帮助我?下面是基于会话变量的select语句

$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);
}