在项目中用php+mysql,需要插入数据,但是数据库表字段又很长,如果用常规的insert into table (c) values ('dd')的话,将是很长的sql语句,而且一不小心,就弄错了。

所以一般都用数组来操作,好多框架都有专门的功能,例如thinkphp的表映射,可用

$result= $model->add($post) //$post为和表字段对应的数组 

但是原生的怎么做,下面是我总结的,虽然看似繁琐了一点,但绝对比原来有效率;代码如下:

<?php
//a,b,c,d为表的字段,在我实际的项目中字段有好多
$data['a'] = $_POST['a'];
$data['b'] = $_POST['b'];
$data['c'] = $_POST['c'];
$data['d'] = $_POST['d']; foreach($data as $k=>$v){
$k1[] = '`'.$k.'`'; //将字段作为一个数组;
$v1[] = '"'.$v.'"'; //将插入的值作为一个数组; } $strv.=implode(',',$v1);
$strk.=implode(",",$k1);
echo '<br>以下为插入代码';
$sql = "insert into tb ($strk) values ($strv)";
echo $sql;
echo '<br>以下为更新代码';
echo '<br>'; foreach($data as $k=>$v){
$str[] = "`".$k."` = '".$v."'"; //将字段作为一个数组; }
$strs=implode(',',$str);
$sql = "update tb set $strs where id=1";
echo $sql; ?> <form action="" method="post" name="asp">
  框1:<input type="text" name="a" value="1" />
  框2:<input type="text" name="b" value="2" />
  框3:<input type="text" name="c" value="3" />
框4:<input type="text" name="d" value="4" />
  <input type="submit" name= "Download" vaue="Download" />
</form>

这里只写出生成mysql语句的代码!

mysql 以数组的形式插入更新表的更多相关文章

  1. mysql把查询结果集插入到表理

    把表B的内容插入到表A INSERT INTO 1111_0 SELECT*FROM report_0 把查询结果集插入到表中 insert into A(a,b,c) select from B(a ...

  2. mySQL 教程 第5章 插入 更新与删除数据

    使用SQL Manager管理工具连接到schoolDB.由于三张表都设置了主键,因此,以下练习中插入的记录,主键不能重. 插入数据 1. 练习:为表的所有字段插入数据 为表中所有字段插入数据,可以不 ...

  3. MySQL入门很简单: 9 插入 更新与删除数据

    1. 插入数据:INSERT 1)为表的所有字段插入数据 第一种: 不指定具体的字段名 INSERT INTO 表名 VALUES(值1,值2,...,值n): 第二种:INSERT语句中列出所有字段 ...

  4. ORACLE no1 存储过程插入更新表数据

    CREATE OR REPLACE PROCEDURE sp_cust_main_data_yx(InStrDate  IN VARCHAR2,                             ...

  5. 《mysql必知必会》笔记3(插入、更新、删除、创建删除更新表、视图)

    十九:插入数据 1:insert语句用来将行插入数据表中,可以插入完整的行.行的一部分.插入多行.插入某些查询的结果. 2:不指定列名,可以这样插入: insert into customers va ...

  6. C#中缓存的使用 ajax请求基于restFul的WebApi(post、get、delete、put) 让 .NET 更方便的导入导出 Excel .net core api +swagger(一个简单的入门demo 使用codefirst+mysql) C# 位运算详解 c# 交错数组 c# 数组协变 C# 添加Excel表单控件(Form Controls) C#串口通信程序

    C#中缓存的使用   缓存的概念及优缺点在这里就不多做介绍,主要介绍一下使用的方法. 1.在ASP.NET中页面缓存的使用方法简单,只需要在aspx页的顶部加上一句声明即可:  <%@ Outp ...

  7. mysql 插入/更新数据

    mysql 插入/更新数据 INSERT 语句 1.一次性列出全部字段的值,例如: INSERT INTO student VALUES('Chenqi','M', 29); INSERT INTO ...

  8. day38 mycql 初识概念,库(增删改查),表(增删改)以及表字段(增删改查),插入更新操作

    在Navicat中把已经生成的表逆向成模型 数据库上,右键-逆向数据库到模型 ego笔记: 增删改查 文件夹(库) 增 create database day43 charset utf8; 改 al ...

  9. 我的MYSQL学习心得(八) 插入 更新 删除

    我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...

随机推荐

  1. mysql_报错1418

    报错如下: 1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration a ...

  2. requests 进阶用法学习(文件上传、cookies设置、代理设置)

    一.文件上传 1.模拟网站提交文件 提交此图片,图片名称:timg.jpg import requests files={ 'file':open('timg.jpg','rb') } respons ...

  3. 《通过C#学Proto.Actor模型》之Supervision

    Supervision,字面意思是监督,是父Actor发现子Actor有异常发生后,对子Actor产用保种策略处理的机制,如果父Actor不处理,则往上传递. 子Actor发生异常后处理的策略有: R ...

  4. vs2017创建.net core 应用程序,发布到Linux

    1.打开vs2017,创建.net core 应用程序 压缩上传到linux

  5. TensorRT&Sample&Python[network_api_pytorch_mnist]

    本文是基于TensorRT 5.0.2基础上,关于其内部的network_api_pytorch_mnist例子的分析和介绍. 本例子直接基于pytorch进行训练,然后直接导出权重值为字典,此时并未 ...

  6. root用户无法访问Mysql数据库问题的解决

    在使用Centos系统远程访问Mysql数据库的时候,系统提示报如下错误: Access Denied for User 'root'@'localhost' (using password: YES ...

  7. js 对数据进行过滤

    //对数据进行过滤 Array.prototype.filter = Array.prototype.filter || function (func) { var arr = this; var r ...

  8. OCR技术浅析-自写篇(2)

    本例仅以本人浅薄理解,妄想自制文字识别程序,实际在识别部分未有完善. <?php class readChar{ private $imgSize; //图片尺寸 private $imgGd2 ...

  9. Java基础——枚举详解

    前言: 在第一次学习面向对象编程时,我记得最深的一句话就是“万物皆对象”.于是我一直秉承着这个思想努力的学习着JAVA,直到学习到枚举(Enum)时,看着它颇为奇怪的语法……我一直在想,这TM是个什么 ...

  10. Linux centos7.5操作系统的安装

    安装centos7.5 1.1 新建虚拟机 1.2 选择客户机系统和版本 1.3 更改虚拟机名称和创建地址.   1.4 选择网络类型 1.5 自定义硬件,选择添加centos7.5镜像 1.6 开机 ...