如何在PHP中使用爆破更新多个数据

丹尼斯

我有一个脚本,可以使用implode方法在PHP中插入多个数据,但是我不知道如何在UPDATE语法中使用它。

<input type="text" name="field_name" value="unyil"/>

使用这样的PHP:

foreach($_POST['id_table'] as $row=>$id_table)
{
    $id_table=$id_table;
    $full_name=$_POST['full_name'][$row];

    $query_row[] = "('$id_table','$full_name')";
}

$sql="INSERT INTO tb_client_table_rows (id_table, full_name) VALUES " . implode(',',$query_row); 

if (!mysql_query($sql))
{
    die('Error: ' . mysql_error());
}

但是,如何将其用于更新行值?

尼瑟·恩格斯特伦(NisseEngström)

Mohamed Hossam在对MySQL参考手册的评论中发布了以下内容

一种非常服务器资源友好的方法来更新同一表中的多行,方法是使用WHEN THEN(有一个非常重要的说明)。

UPDATE tbl_name SET fld2 = CASE fld1
WHEN val1 THEN data1
WHEN val2 THEN data2
ELSE fld2 END

注释是:不要忘记ELSE如果不使用它,则所有超出更新值范围的行都将设置为空白!

(强调和格式已添加。)


在此基础上,你可以使用implode来构建一个UPDATE具有多个值的查询:

<?php

  /* Sample data: */

  $_POST['id_table'] = array ('1746', '1834', '1944');
  $_POST['full_name'] = array ('lumbar', 'bezoar', 'sniggle');

  /* Code */

  foreach($_POST['id_table'] as $row=>$id_table)
  {
    /* Don't forget to escape data to avoid SQL injection */

    $id_table  = mysql_real_escape_string ($id_table);
    $full_name = mysql_real_escape_string ($_POST['full_name'][$row]);

    $query_row[] = "'$id_table' THEN '$full_name'";
  }

  $query = "UPDATE tb_client_table_rows\n"
         . "   SET full_name = CASE id_table\n"
         . "                     WHEN "

         . implode ("\n                     WHEN ", $query_row) 

         . "\n                     ELSE full_name\n"
         . "                   END";

  echo "$query\n";

输出:

UPDATE tb_client_table_rows
   SET full_name = CASE id_table
                     WHEN '1746' THEN 'lumbar'
                     WHEN '1834' THEN 'bezoar'
                     WHEN '1944' THEN 'sniggle'
                     ELSE full_name
                   END

请注意,不推荐使用MySQL扩展,并且不再对其进行维护。这些天您应该使用MySQLiPDO

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Oracle 12c中使用多个数据更新单列

如何在PDO中使用爆破

如何在 Oracle APEX 中使用多个数据 ID?

如何在ebean中使用多个数据库

如何在Laravel中使用多个数据库

如何在流明中使用多个数据库

如何在opencart中使用多个数据库?

如何在 Shiny App 中使用多个数据集?

如何在foreach循环中使用爆破功能

如何在Android中使用PHP MYSQL更新数据

如何在Lumen 5.5 ..中使用.env使用多个数据库连接?

如何使用 php 和 Mysqli 在 Meta 关键字中使用多个数据

如何在python中使用单个数据点创建多个散点图?

如何在rdlc C#报表中使用多个数据集

如何在Wordpress中使用单个数据库运行多个网站

如何在laravel中使用选择选项发送多个数据?

如何在laravel项目中使用多个数据库连接?

如何在 Python 中使用来自一个 Excel 列的多个数据点?

如何在插件中使用.data()将多个数据附加到jquery对象

如何在R中使用lapply对包含多个数据帧的列表进行采样?

如何在R中的SQLDF中使用LIKE在多个数据框中搜索文本

如何在实体框架中使用多个数据库?

如何在python中使用for循环创建多个数据框

如何在带有PHP和XPath的foreach语句中使用多个数组

如何在php中使用for循环过滤多个数组值?

如何使用多个数据源更新多个数据透视表?

如何在多个 collectionView 部分中使用单个数组?

如何在纯sh中使用多个数组?

如何在PHP的一页中使用2个数据库连接