mysql insert into 以数组的形式插入表

来源:互联网 发布:方圆彩平软件 编辑:程序博客网 时间:2024/06/02 07:12

mysql insert into 以数组的形式插入表

发表于2013/5/28 2:29:49  9230人阅读

分类: mysql

在项目中用php+mysql,需要插入数据,但是数据库表字段又很长,如果用常规的insert into table (c) values ('dd')的话,将是很长的sql语句,而且一不小心,就弄错了。所以一般都用数组来操作,好多框架都有专门的功能,例如thinkphp的表映射,可用
$result= $model->add($post) //$post为和表字段对应的数组

但是原生的怎么做,下面是我总结的,虽然繁琐了一点,但绝对可行;例:

$link = mysql_connect('localhost','root','pwd');mysql_select_db('db',$link);$data['a'] = $post['a'];$data['b'] = $post['b'];$data['c'] = $post['c'];$data['c'] = $post['c'];$data['d'] = $post['d'];$data['e'] = $post['e'];$data['f'] = $post['f'];$data['g'] = $post['g'];//a,b,c,d,e,f,g为表的字段foreach($data as $k=>$v){     $k1[] = '`'.$k.'`';  //将字段作为一个数组;     $v1[] = '"'.$v.'"';  //将插入的值作为一个数组; }   $strv.=implode(',',$v1);      $strk.=implode(",",$k1); $sql = "insert into tb ($strk) values ($strv)";mysql_query($sql); 

目前,就这样做,还没有想更好的方法。


在网上也有这样做的,不过我还没有测试。

第一步:我们先来创建一个表格来存储数组变量的值,就是用mysql自带的test数据库吧

Use test;

Creat table ‘NEIL’ ( ‘ID’ int(20) primary key not null,

                               ‘Major’ varchar(25) not null);

第二步:我们来建立一个复选框页面用来模拟一个实例PHP数组 index.html

<body>

<form method="post" action="show.php">

ID: <input type=”text” name=”id”><br>

<input type="checkbox" name="teach[0]" value="online">Online<br>

<input type="checkbox" name="teach[1]" value="video">video<br>

<input type="checkbox" name="teach[2]" value="face">Face-to-Face<br>

<input type="submit" value="submit">

</form>

第三步:我们来描述show.php

Index.html通过post 将变量提交给show.php来处理,我们先来写show.php代码

<?php

$db_name=”test”;

$table_name=”neil”;

$connection= @mysql_connect(“localhost”,”root”,”root”) or die(mysql_error());

$db= @mysql_select_db($db_name,$connection) or die (mysql_error());

/*这里我们来进行数组变量的处理*/

$value=’’; //定义一个变量value初始化为空

Foreach($_POST[“teach”] as $key)

{ $value.=$key.’,’;} /*将数组值传递给中间变量key, 由key 将值传依次递给变量value */

/*插入语句*/

$sql=”insert into neil values (‘$_POST[id]’,’$value’)”;

$query= @mysql_query($sql,$connection) or die(mysql_error());

?>


0 0