【问题标题】:PHP Variables in an SQL querySQL 查询中的 PHP 变量
【发布时间】:2015-03-11 21:33:09
【问题描述】:

我在 SQL 查询中使用会话变量,每次调用时都会更新胜利或失败。我查看了类似的问题,但他们使用的是 mysql 而不是 mysqli。在 mysqli 查询中使用 php 变量的正确方法是什么? 这是我的样子:

$sqlQuery = "UPDATE users SET wins=wins+1 WHERE username == $_SESSION['username']";}

【问题讨论】:

  • SQL where 子句中的比较使用 1 等号。此外,用花括号将变量包装在字符串中。尤其是数组。否则在这种情况下你会得到一个错误。
  • “在 mysqli 查询中使用 php 变量的正确方法是什么?” - 无论您使用哪个 MySQL API,您的查询本身都是不正确的。
  • 既然你好像在用mysqli,那么把or die(mysqli_error($connection))加到mysqli_query()就可以看到错误了。确保您也开始了会话。

标签: php sql mysqli


【解决方案1】:

生成的 sql 查询应如下所示:

UPDATE users SET wins=wins+1 WHERE username = 'user_name';

所以我们需要正确地准备它:

$sql = sprintf(
    "UPDATE users SET wins=wins+1 WHERE username = '%s';",
    $_SESSION['username']
);

但请使用正确的数据库连接器(PDO、mysqli)并转义用户名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 2019-02-16
    相关资源
    最近更新 更多