将arraylist更新到mysql数据库到php时出错

时间:2012-04-13 13:26:50

标签: php mysql arraylist

我可以发送两个数组列表android到php

                      [p,q,r,s,t,u](old menuname)
                      [a,b,c.d,e.f](new menunames)

我在该表中有测试表包含一个正确更新的列名称。现在我添加另一列作为menuimage我可以将menuimages(blob)插入mysql数据库的menuimage列。现在我想要执行更新menunames意味着它只更新第一行。剩余的行不会更新。

      i try this code
      <?php
    $old_menu_names=explode(',',preg_replace('/^.*\
    [(.*)\].*$/','$1',trim($_POST['menuname'], '[]'))); 

    $new_menu_names=explode(',',preg_replace('/^.*\
    [(.*)\].*$/','$1',trim($_POST['editmainmenu'], '[]'))); 

    mysql_connect("localhost", "root", "root");
    mysql_select_db("test"); 

    $i = 0;
    foreach ($old_menu_names as $key => $old_name)
    {
       $new_name = mysql_real_escape_string($new_menu_names[$i]);
       $old_name  = mysql_real_escape_string($old_menu_names[$key]);
       echo $new_name;
       mysql_query("UPDATE `test` SET `menuname` = '$new_name' WHERE menuname =   '$old_name'")
       or die('Error' . mysql_error());
       echo "Updated"; 
       $i++;
    }

&GT;

我可以打印此行的响应是echo $ new_name; echo“更新”; aUpdated bUpdated c \ n已更新dUpdated eUpdated fUpdated

但只有第一个更新的剩余行未更新

1 个答案:

答案 0 :(得分:0)

嗯......

正则表达式可能有错误。

在foreach之前转储$ old_menu_names变量。

print_r($old_menu_names);