【问题标题】:Using a session variable in a SQL WHERE statement在 SQL WHERE 语句中使用会话变量
【发布时间】:2012-02-19 20:41:45
【问题描述】:

我有一个包含多个表单的页面,使用不同的 .php 页面来处理和更新我的数据库。在第一页上,我的会话变量存储在第二页上,我试图调用要在 where 语句中使用的会话变量。

$sql="UPDATE Persons
    SET newsletter='$_POST[newsletter]',howiPad='$_POST[howiPad]',invite='$_POST[invite]', messageforfriends='$_POST[messageforfriends]', possible_points='$_POST[possible_points]'
    WHERE `usremail` = '$_SESSION['usremail']'";

【问题讨论】:

标签: php mysql session variables where


【解决方案1】:
$sql="UPDATE Persons
    SET newsletter='$_POST[newsletter]',howiPad='$_POST[howiPad]',invite='$_POST[invite]', messageforfriends='$_POST[messageforfriends]', possible_points='$_POST[possible_points]'
    WHERE `usremail` = '$_SESSION[usremail]'";

【讨论】:

  • 我很难看到变化,但我同意这可能是正确的。删除 usremail 括号内的单引号,否则单引号内有单引号
【解决方案2】:

就像 mysql 语句中的任何数组一样,一定不要在引号中,单引号或双引号。

基本上只需将您的帖子数组复制到 where 并更改为 session 和 usremail

【讨论】:

    【解决方案3】:

    例如。

    $statement = $db_connection->prepare("SELECT id,
           usrname,
           color,
           chattext,
           chattime
    FROM chat
    WHERE id > ?
      AND usrname ='$_SESSION[usrname]'
      AND chattime >= DATE_SUB(NOW(), INTERVAL 20 HOUR)");
    $statement->bind_param( 'i', $id);
    

    【讨论】:

      猜你喜欢
      • 2023-03-02
      • 2015-07-28
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      • 2020-03-08
      • 2020-04-16
      • 1970-01-01
      相关资源
      最近更新 更多