【问题标题】:UPDATE concat and variables更新连接和变量
【发布时间】:2012-10-27 08:00:32
【问题描述】:

我可能只是困了,但我尝试以各种方式连接它,但它只是不起作用。 $friend_id 只是一个字符串,据我所知应该不会造成问题。

mysql_query("UPDATE users SET friends =  CONCAT(friends,"$friend_id")  WHERE username = '$user_logged_in'") or die mysql_error());

mysql_query("UPDATE users SET friends = friends +" . ", " . "'$friend_id' WHERE username = '$user_logged_in'");

有什么想法让我绊倒了吗?

【问题讨论】:

  • 如果你使用 mysqli 或 pdo 而不是 mysql_query,并且做准备/绑定,你就不会遇到这个问题。他们还通过像这样使用 mysql_query 来避免严重的 SQL 注入漏洞。
  • 真的希望$friend_id被正确转义..
  • 请不要使用mysql_* 函数来编写新代码。它们不再维护,社区已经开始deprecation process。看到red box?相反,您应该了解prepared statements 并使用PDOMySQLi。如果你不能决定哪一个,this article 会帮助你。如果你选择 PDO,here is good tutorial。另见Why shouldn't I use mysql functions in PHP?
  • @NullPointer 我知道这是题外话,但是您将正确格式的回复保存在哪里?我之前已经多次看到确切的回复。
  • @Daedalus lol.... 这和很多用户一样,你也可以得到gist.github.com/3941118

标签: php mysql concat


【解决方案1】:

这最终奏效了。

mysql_query("UPDATE users SET friends = CONCAT(friends,'".",".$friend_id."') WHERE username = '$user_logged_in'");

【讨论】:

    【解决方案2】:

    试试这个

    mysql_query("UPDATE users SET friends =  CONCAT(friends,'".$friend_id."')  WHERE username = '".$user_logged_in."'") or die mysql_error());
    

    【讨论】:

    • 嗯,添加到 db 但不与“,”连接
    【解决方案3】:

    使用 .在 PHP 中连接字符串。

    mysql_query("UPDATE users SET friends =  CONCAT(friends,".$friend_id.")  WHERE username = '$user_logged_in'") or die mysql_error());
    

    【讨论】:

      【解决方案4】:

      在运行查询之前,请检查您的变量“$friend_id”。我只是修剪了“,”。

      $friend_id = trim($friend_id, ',');
      

      查询:

      mysql_query("UPDATE users SET friends =  CONCAT(friends,'".$friend_id."')  WHERE username = '".$user_logged_in."'") or die mysql_error());
      

      【讨论】:

        猜你喜欢
        • 2018-05-21
        • 2017-07-16
        • 1970-01-01
        • 2019-06-27
        • 2016-05-16
        • 2012-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多