【问题标题】:how do they return same result? [duplicate]他们如何返回相同的结果? [复制]
【发布时间】:2016-05-25 18:59:00
【问题描述】:

这里,$user_id 是单引号:

$select = $conn->query("SELECT firstname,lastname FROM users WHERE user_id = '$user_id'");
$row = $select->fetch_assoc();
    print_r($row);

这里,$user_id 不是单引号

$select = $conn->query("SELECT firstname,lastname FROM users WHERE user_id = $user_id");
$row = $select->fetch_assoc();
    print_r($row);

如果$user_id = 1'1' == 1??两者都返回 $user_id = 1 的关联数组。

【问题讨论】:

  • 因为 MySQL 在引用整数时是宽容的。如果那个变量是一个字符串,那将是一个不同的故事。这是“简短的答案”。所以现在你知道了。
  • ... 天哪! (哦等等,那是别的东西)。
  • 我已经等了5分钟了!
  • @AbraCadaver 真的吗?那时我早到了一分钟。
  • 答案不止一种。

标签: php mysqli


【解决方案1】:

对于您的用例,是的,'1' == 1

From the docs:

要将字符串转换为数值上下文中的数值,您通常无需执行任何操作,只需将字符串值当作数字使用:

mysql> SELECT 1+'1';
       -> 2

【讨论】:

    猜你喜欢
    • 2013-04-22
    • 2020-08-10
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-29
    相关资源
    最近更新 更多