php + mysql +更新查询无法正常工作

时间:2013-04-21 13:17:23

标签: php mysql sql-update

我正在创建一个朋友请求系统,所以我需要将friend数组添加到用户行,并在每个用户名之间添加一个逗号,任何人都可以帮助我,因为我的代码没有添加任何逗号

当friend_array字段为空时代码工作,它为用户添加了朋友但是 当用户的朋友_array字段不为空时

出现错误

friend_request.php

if($friendArray_count >= 1)
     {
         $add_friend_query = mysql_query("UPDATE user SET friend_array = CONCAT(friend_array, ', $user_from') WHERE user_name = '$login_user'");
     }

         if($friendArray_count_friend >= 1)
         {
         $add_friend_query = mysql_query("UPDATE user SET friend_array = CONCAT(friend_array, ', $user_to') WHERE user_name = '$user_from'");
     }

2 个答案:

答案 0 :(得分:0)

可能您正在寻找此查询

$add_friend_query = mysql_query("UPDATE user SET friend_array = 
CONCAT(friend_array, ', $user_from ,') WHERE user_name = '$login_user'");
                                   ^

答案 1 :(得分:0)

怎么样:

if($friendArray_count >= 1)
 {
     $add_friend_query = mysql_query("UPDATE user SET friend_array = CONCAT_WS(',', friend_array, '$user_from') WHERE user_name = '$login_user'");
 }

 if($friendArray_count_friend >= 1)
 {
     $add_friend_query = mysql_query("UPDATE user SET friend_array = CONCAT_WS(',', friend_array, '$user_to') WHERE user_name = '$user_from'");
 }

编辑:

从评论中看,问题不在于存储,实际上它是按原样运行的。问题是从数据库中提取数据。

运行SELECT查询后,只需对字段值使用explode函数,如下所示:

$result = mysql_query('SELECT friend_array FROM user');
$row = mysql_fetch_assoc($results);
$friend_array = explode(',', $row['friend_array']);

在列中插入新元素时要小心:如果插入的值包含逗号,则将其视为2个值。您可能需要稍后将代码移动到PDO,以便更轻松地处理与安全性和查询良好形成相关的所有问题。