【问题标题】:PHP MySQL queries with variables [duplicate]带有变量的PHP MySQL查询[重复]
【发布时间】:2019-01-19 05:09:27
【问题描述】:

在我的 php 中,我进行了这个查询

$sql = "SELECT * FROM session WHERE sessionid = '$_SESSION["id"]';";

导致错误

解析错误:语法错误,意外 '"',需要 '-' 或标识符 (T_STRING) 或变量 (T_VARIABLE) 或数字 (T_NUM_STRING) /opt/lampp/htdocs/Chore-Champs/index.php 在第 6 行

显然我嵌套引号的方式有问题,所以我尝试了不同的方法,包括

$sql = "SELECT * FROM session WHERE sessionid = " . $_SESSION['id'] . ";";

这仍然会导致同样的错误。

通常第一种方法适用于普通变量,例如$username,但我猜会话变量的处理方式不同。编写此查询的正确方法是什么?

【问题讨论】:

  • 您需要将$_SESSION["id"] 括在{} 中以保护"s 周围的id 即$sql = "SELECT * FROM session WHERE sessionid = '{$_SESSION["id" ]}';";
  • 我强烈建议使用准备好的语句,请参见此处:stackoverflow.com/questions/60174/…

标签: php mysql sql mysqli


【解决方案1】:

试试

$sql = "SELECT * FROM session WHERE sessionid = '" . $_SESSION['id'] . "';";

php中的基本字符串连接

【讨论】:

    【解决方案2】:

    试试这个:

    $sql = "SELECT * FROM session WHERE sessionid = '". $show. "'";
    

    【讨论】:

    • $show 应该是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多