foreach循环中的多行更新

时间:2016-03-21 10:55:31

标签: php mysql

我的SQL表

table->requirement

id        label_name      label_value      requirement_id   
103         budget         5000                 4           
104       specialist      dentist               4          
105       treatment       clinic                4          
106       expertise       criminal              5          
107       charges          5100                 5          

我正在尝试通过label_value更新此表中的mysql-php

我在php中试过这段代码,但它正在运行。

foreach ($data as $columnName => $colValue) {
    echo   $subQuery .= "UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id')";
    mysql_query($subQuery);
    }

获得输出 -

  

更新requirement设置label_value ='医生',其中(label_name ='专家'和requirement_id ='2')

     

更新requirement设置label_value ='医生',其中(label_name ='专家'和requirement_id ='2')

     

更新requirement设置label_value ='在您家中'(label_name ='约会'和requirement_id ='2')

我不知道这是否正确但我需要在表格中更新此表格。请帮帮我。

1 个答案:

答案 0 :(得分:2)

您需要从.删除.= "UPDATE,因为它会连接您的查询。

对于循环的第一步,它将生成

UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id'

此查询有效,但对于第二步,它将生成

UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id' UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id'

这是错误的语法。

只需使用

foreach ($data as $columnName => $colValue) {
    echo   $subQuery = "UPDATE `$tableName` SET `label_value`='$colValue' where (`label_name`='$columnName' AND `requirement_id`='$id')";
    mysql_query($subQuery);
    }

尝试学习mysqli or pdo,因为mysql已被删除

还要了解mysqli_multi_query