‘壹’ php 把数组插入数据库
lxydjx 正解,我来详细补充一下吧。未经测试、、、
//初始化
$sql = array();
// 从 a.php POST 过来的值
$_POST["xinxi"] = "20-2,19-1,18-1";
// 拆分为 array("20-2", "19-1", "18-1");
$post_data = explode(",", $_POST["xinxi"]);
// 循环数组
for($i = 0; $i < count($post_data); $i++) {
// 再次拆分每一条信息为 array("20", "2"), array("19", "1"), array("18", "1")
$details = explode("-", $post_data[$i]);
// 将每一条信息添加到 $sql 数组中
array_push($sql, "(20121015194535193356, ".$details[0].", ".$details[1].")");
}
// 用 , 连接,转换为 string
$sql = implode(",", $sql);
// 插入数据库
mysql_query("INSERT INTO table_sales (dingid, detailsid, buynumber) VALUES ($sql)");
‘贰’ php 怎样把2个一维数组写到一个二维数组里去
php二维数组简单的说就是数组里面的元素还是数组,所以可以这样做:
$arr1=array(1,2,3);
$arr2=array(4,5,6);
$array=array();//定义一个空数组,存放上面的两个一维数组
$array[0]=$arr1;
$array[1]=$arr2;
‘叁’ PHP中如何把一个数组中的数据取出来并插入到数据库中
没用框架就直接拼接sql语句啊
$sql = 'insert into tablename(field1, field2, field3) values(val1, val2, val3), (val1, val2,val3)';
主要就是拼接values后面的内容,一个括号一条数据,拼接完执行数据库插入操作就行了;
如果数据量很大,注意每次拼接的sql不要太长了,数据库执行的sql也是有长度限制的
‘肆’ php中一个二维数组,怎么吧数组中的数据作为value插入到数据库某个表中
首先,你数据库用的是什么?用什么连接的数据库?
如果用values的形式插入语句只能用for反复执行(以mysql为例)
for($i=0;$i<66;$i++){
mysql_query("insertintousers(user_id,user_name)value(array[$i]['user_id'],array[$i]['name'])");
}
或者一次性生成表然后插入,需要尽量保证表结构一致
$str="insertintousers("
for($i=0;$i<66;$i++){
$str.="select".array[$i]['user_id']."asuser_id,".array[$i]['name']."asname";
}
$str.=")";
mysql_query($str)
‘伍’ php问题,求指点
这个问题不难解决。最快捷的方法就是用PHP-ExcelReader类库,也就是说,我要引入这个类文件,然后按照特定的算法把里面的数据循环读取出来。
给你一个例子:
include_once('../plugins/excel/reader.php');
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP936');
chmod($path.$newFile.$suffix,'0777');
$data->read($path.$newFile.$suffix);
// 先读行,再读列,锁定一行,分列读取;
$num=$data->sheets[0]['numRows'];
for ($i = 1; $i <= $num; $i++) {
for ($j = 0; $j <= $data->sheets[0]['numCols']; $j++) {
$insertData[$j]=$data->sheets[0]['cells'][$i][$j];
}
// 读一行,存一行
if(!empty($insertData[1])){
$insertData[5]=intval($insertData[5]);
$insertData[6]=intval($insertData[6]);
$insertArray = array(
'goods_number' => $insertData[2],
'goods_name' => $insertData[3],
'goods_category' => empty($insertData[5])?65:empty($insertData[5]),
'goods_brand' => empty($insertData[6])?80:empty($insertData[6]),
//'goods_image' => $insertData[2].'.jpg',
'goods_price' => $insertData[7],
'goods_market_price' => $insertData[8],
'goods_credit' => $insertData[7]*100,
'goods_credit_green'=> $insertData[7]*100,
'goods_credit_gold'=> $insertData[7]*100,
'goods_credit_platinum'=> $insertData[7]*100,
'goods_credit_diamond'=> $insertData[7]*100,
'goods_intro' => $insertData[9],
'goods_freight' => $insertData[11].','.$insertData[12].','.$insertData[13].','.$insertData[14],
'goods_provider' => 2,
'goods_stock' => 1000
);
$goodsId = insertTable('goods',$insertArray,1);
//printarr($insertArray);
$detailArray = array(
'goods_id' => $goodsId,
'goods_detail' => empty($insertData[10])?$insertData[3].'暂无产品详细信息':$insertData[10],
'goods_params' => '暂无规格参数',
'goods_list' => '暂无包装清单',
'goods_service' => '暂无售后服务',
'goods_history' => '暂无品牌历史',
);
insertTable('goods_detail',$detailArray);
}
}
至于类库你到网上去下吧,到处都是。
‘陆’ php中二维数组怎么写入到数据库
json_encode后就是字符串了。
所以不需要什么特别处理,直接入库就可以。
只不过出库后需要json_decode。
你的问题是,出库后没有对json_encode的字段进行json_decode处理。
例如
$result = array('a'=>'jsonencode后的字符串');
print_r(json_decode($result['a']));
‘柒’ php 数组添加元素
用array_slice()函数
array
array_slice
(
array
myarray,
int
offset
[,
int
length]
)
返回myarray数组从地offset开始的length个元素
array_splice与上面的函数类似,只是把返回的部分删除或替代
你的问题实现方法(给你写成函数):
<?php
function
array_insert($myarray,$value,$position=0)
{
$fore=($position==0)?array():array_splice($myarray,0,$position);
$fore[]=$value;
$ret=array_merge($fore,$myarray);
return
$ret;
}
?>
此函数用法
返回一个数组,内容是在$myarray数组的$position处插入$value
例如:
$a=array("a",
"b","c",
"d");
$a=array_insert($a,"add",3);
print_r($a);
//Array
(
[0]
=>
a
[1]
=>
b
[2]
=>
c
[3]
=>
add
[4]
=>
d
)
【代码我测试过没有问题】
‘捌’ PHP框架 Laravel Eloquent ORM 批量插入数据,怎么实现
PHP框架 Laravel Eloquent ORM 批量插入数据是通过传入数组实现的。
比如:
DB::table('users')->insert(array(
array('email' => '[email protected]', 'votes' => 0),
array('email' => '[email protected]', 'votes' => 0),
));
以上是操作表users,执行insert语句,参数是一个数组,封装了两条数据,这里可以自定义数据,insert内部就编程批量插入了。
然后调用save方法:
public static function create(array $attributes)
{
$model = new static($attributes);
$model->save();
return $model;
}
‘玖’ php把一个二维数组的值插入到对应的多维数组里面,键值相同:
你这array2的格式和array1不一样啊,单纯array insert的话用array_push
//把array2插到array1中
array_push(array1,array2);
‘拾’ php往mysql插入数据,以数组形式插入(即数组键名是字段名,键值是value)
确实,只能自己封装一个方法来拼sql,比如:
$arr=array('z'=>'ccc','w'=>'ddd');
doInsert('aaa',$arr);
doInsert('bbb',$arr);
functiondoInsert($tbname,$fields){
$sql='insertinto'.$tbname.'(';
$sqlfield='';
$sqlval='values(';
foreach($fieldsas$field=>$val){
if(!empty($sqlfield)){
$sqlfield.=',';
$sqlval.=',';
}
$sqlfield.=$field;
$sqlval.='''.str_replace(''','''',$val).''';
}
//执行拼接好的sql
$this->db->query($sql);
}