php批量插入數據
❶ php批量導入數據如何去重復
你好,這是我解決你這個問題的思路,希望能幫到你:比如你是根據a欄位設置唯一,在每次插入之前就使用下一條需要插入的值去數據表裡面查詢,如果查詢到了就跳出當前循環,下次循環繼續(continue),希望能幫到你!
❷ Thinkphp怎麼批量添加數據
<?php
class FileAction extends Action {
public function Index()
{
//print_r(__URL__);
$file = M('file');
$list = $file->select();
$this->assign('filelist',$list);
$this->display();
}
public function upload()
{
//文件上傳的地址上傳給它,並且上傳完成後返回一個信息,讓其寫入資料庫
//如果$_FILES為空的畫,我就讓action給出一個錯誤提示,告訴用戶必須選擇上傳文件。如果有上傳文件,則調用up方法
//$_FILES = $this->_post('file');
//print_r($_FILES);
if (empty($_FILES)) {
$this->error('必須選擇上傳文件');
}else {
$a = $this->Up();
//print_r($a);
if (isset($a)) {
//寫入資料庫方法
if($this->c($a)) {
$this->success('上傳成功');
}else {
$this->error('寫入資料庫失敗');
}
}else {
$this->error('上傳文件有異常請與系統管理員聯系');
}
}
}
private function c($data)
{
//print_r($data);
$file=M('file');
$num = '0';
for($i = 0; $i < count($data)-1; $i++) {
$data['filename']=$data[$i]['savename'];
if( $file->data($data)->add())
{
$num++;
}
}
if($num==count($data)-1)
{
return true;
}else {
return false;
}
}
// private function c($data)
// {
// $file = M('file');
// $data['filename'] = $data[0]['savename'];
// if ($file->data($data)->add()) {
// return true;
// }else {
// return false;
// }
// }
//在這個方法當中,完成與thinkphp相關的,文件上傳類的調用
private function Up()
{
//echo '模擬上傳';
//基本上傳功能
//批量上傳功能
//生成圖片縮略圖
//自定義參數上傳
//上傳檢測(大小,後綴,mime類型)
//支持覆蓋方式上傳
//上傳類型,附件大小,上傳路徑定義
//支持hash或者日期子目錄保存上傳文件
//上傳圖片的安全性檢測
//對上傳文件的hash檢測
//上傳文件名自定義規范
import('@.ORG.UploadFile');
import('@.ORG.Image');
$upload = new UploadFile();
$upload->maxSize = '1000000'; //指上傳文件大小,默認為-1,不限制大小(bytes)
$upload->savePath = './Public/'; //上傳保存到什麼地方?路徑建議保存到入口文件平級或平級目錄的子目錄
$upload->saveRule = 'uniqid'; //上傳文件的文件名保存規則 time uniqid(默認) com_create_guid
$upload->hashType = 'md5_file';
$upload->autoCheck = true; //是否自動檢測附件 默認true
$upload->uploadReplace = true; //如果存在同名文件是否進行覆蓋
$upload->allowExts = array('jpg','jpeg','png','gif'); //允許上傳的文件後綴
$upload->allowPath = array('image/png','image/jpg','image/pjpeg','image/gif','image/jpeg'); //檢測mime類型
$upload->thumb = true; // 是否開啟圖片文件縮略
$upload->thumbMaxWidth = '300,500';//縮略圖最大寬度
$upload->thumbMaxHeight = '200,400';//最大高度
$upload->thumbPrefix = 's-,m-';//縮略圖文件前綴
//$upload->thumbSuffix = '_s,_m';//文件後綴
//$upload->thumbPath = '';//如果留空直接上傳至
//$upload->thumbFile 在資料庫中也存一個文件名即可
$upload->thumbRemoveOrigin = 1; //如果生成縮略圖,是否刪除原圖
//$upload->autoSub 是否使用子目錄進行保存上傳文件
//$upload->subType='' 子目錄創建方式默認為hash 也可以為date
//$upload->dateFormat 子目錄方式date的指定日期格式
//$upload->hashLevle
//upload() 如果上傳成功返回true,失敗返回false
if ($upload->upload()) {
$info = $upload->getUploadFileInfo();
return $info;
}else {
//是專門來獲取上傳的錯誤信息的
$this->error($upload->getErrorMsg());
}
}
}
?>
❸ thinkphp如何同時向資料庫插入多條數據
數據整理好後,批量插入可用addAll方法(僅針對Mysql資料庫):
$User->addAll($data);
❹ php+mysql批量插入數據
INSERT INTO `pre_saige_hotkey` (`id`, `hotkey`, `order`) VALUES
(1, '飛狐', 2),
(2, '突然', 2);
❺ php mysql資料庫 如何有條件批量插入多條數據
$value = '';$query_num = 5; //插入數量for($i=1;$i<=$query_num;$i++){ $value .= "('25','1')";}//mysql insert有插入多條語法,拼接sql語句,table_name表名 $sql = "insert into table_name (memid,online) values ".$value;//執行,插入$query_num條數據mysql_query($sql);
❻ 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+mysql 提交 數據,textarea 怎麼可以批量插入列數據。或者使用其他方法
把textarea 中需要分欄位的地方加上逗號 到後台 把字串分割轉為數組 , (也可以不加逗號 到後台用正則表達式把換行變成逗號)判斷是否夠50個元素 不夠50個元素 補足50個, 然後 用循環 變成帶引號的字元串 左後用一句SQL 搞定
textare 的內容
<?php
$arr=explode(',',$_POST[''a1']);//轉為數組
$arrlen=50;//有50個欄位
$valuestr="'".$_POST['date']."',"//先把date所謂值加進去
for($i=0;$i<$arrlen;$i++){
if(isset($arr[$i))
$valuestr.="'".$arr[$i]."',";
else{
$valuestr.="'',"
}
}
$valuestr=substr($valuestr,0,sizeof($valuestr)-1)//去掉最後的逗號
//得到一個字串,是所有欄位的值用逗號分割,順序一定要一致,而且數目不能多也不能少
$sql="INSERTINTOka_tanVALUES(".$valuest.")";
?>
❽ PHP怎麼 實現批量添加數據
在HTML里這樣寫:
1
2
3
4
5
6
<form ........
<input type="text" name="haoma[]" />
<input type="text" name="haoma[]" />
<input type="text" name="haoma[]" />
....
第N個
foreach($_POST['haoma'] as $v){
$sql="insert into haoma values('',$v)";
.......
}
當然這樣寫一條一條的效率是會慢,再改一下
foreach($_POST['haoma'] as $v){
$values.="('',$v),";
}
$values=substr($values,0,strlen($values)-1);
$sql="insert into haoma values $values";
......
下面的query我就不寫了
❾ php thinkphp 批量插入數據 批量添加數據
批量的話可以這樣做:
<input
type='text'
name='username[]'
/><br
/>
<input
type='text'
name='username[]'
/><br
/>
<input
type='text'
name='username[]'
/><br
/>
<input
type='text'
name='username[]'
/><br
/>
<input
type='text'
name='username[]'
/><br
/>
也就是name用
數組
,這樣你獲取的$_POST['username']就是一個數組,然後你
foreach
循環插入就行了。
❿ PHP Excel大批量導入崩潰怎麼辦
項目需要批量導入excel文件,如果裡面有重復的數據要怎麼處理呢?每插入一次數據都要到資料庫查詢么?
回復內容:
項目需要批量導入excel文件,如果裡面有重復的數據要怎麼處理呢?每插入一次數據都要到資料庫查詢么?
1、如果裡面有重復的數據要怎麼處理呢?
1
<code>可以先判斷資料庫是否有該數據。</code>
2、每插入一次數據都要到資料庫查詢么
1
<code>是的。</code>
先去重得到沒有重復的數據,再批量插入資料庫。也可以嘗試MYSQL中的insert ignore into或 replace into
如果查詢比較慢,對不能重復的欄位加唯一鍵,然後用INSERT IGNORE INTO
php批量導入數據出錯
我現在要做的是,把一個產品數據從EXCEL中導入到PHP的MYSQL中,導入的過程中,總是會提示「Allowed memory size of 167772160 bytes exhausted (tried to allocate 689919 bytes) in D:\wamp\www\Company\proct\admin\uploadOrder.php on line 167」這個錯誤,然後我分成第100條導入時,就不會提示這個錯誤,這個是不是內存溢出,有沒有好的解決方法呢?
------解決方案--------------------
php.ini中講memory_limit選項設置大一點,然後重啟apache或nginx就行了
------解決方案--------------------
文件太大了,這樣的話可以用source命令直接導入!
------解決方案--------------------