思路:
讀取csv文件,每讀取一行數據,就插入資料庫
示例
文件夾結構
/
file.csv//csv大文件,這里只模擬三行數據,不考慮運行效率(PS:csv文件格式很簡單,文件一般較小,解析很快,運行效率的瓶頸主要在寫入資料庫操作)
index.php//php文件
file.csv
singi,20
lily,19
daming,23
index.php
/**
*讀取csv文件,每讀取一行數據,就插入資料庫
*/
//獲取資料庫實例
$dsn='mysql:dbname=test;host=127.0.0.1';
$user='root';
$password='';
try{
$db=newPDO($dsn,$user,$password);
}catch(PDOException$e){
echo'Connectionfailed:'.$e->getMessage();
}
//讀取file.csv文件
if(($handle=fopen("file.csv","r"))!==FALSE){
while(($row=fgetcsv($handle,1000,","))!==FALSE){
//寫入資料庫
$sth=$db->prepare('insertintotestsetname=:name,age=:age');
$sth->bindParam(':name',$row[0],PDO::PARAM_STR,255);
$sth->bindParam(':age',$row[1],PDO::PARAM_INT);
$sth->execute();
}
fclose($handle);
}
數據表
CREATETABLE`test`(
`id`INT(10)UNSIGNEDNOTNULLAUTO_INCREMENT,
`name`VARCHAR(255)NULLDEFAULT''COLLATE'utf8mb4_bin',
`age`INT(10)NULLDEFAULT'0',
PRIMARYKEY(`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
運行結束後,資料庫中會插入csv中的三行數據
Ⅱ phpMyAdmin 只支持導入最大50M的數據 可是我要導的資料庫包超過50M怎麼辦
第一步:修改php.ini配置文件中文件上傳大小配置
upload_max_filesize和post_max_size兩個選項值 改的大一點比如說128M
第二步:修改php執行時間及內存限制實現phpmyadmin上傳大文件功能
如果想要phpmyadmin上傳大文件,還需修改php.ini配置文件中的max_execution_time(php頁面執行最大時間)、
max_input_time(php頁面接受數據最大時間)、memory_limit(php頁面佔用的最大內存)三個配置選項,這是因為
phpmyadmin上傳大文件時,php頁面的執行時間、內存佔用也勢必變得更長更大,其需要php運行環境的配合,光修改上傳文件大小限制是不夠的。
第三步:修改phpmyadmin配置文件
1、修改phpmyadmin config配置文件中的$cfg[『ExecTimeLimit』]配置選項,默認值是300,需要修改為0,即沒有時間限制。
2、修改phpmyadmin安裝根目錄下的import頁面中的$memory_limit
說明:首選讀取php.ini配置文件中的內存配置選項memory_limit,如果為空則默認內存大小限制為2M,如果沒有限制則內存大小限制為10M,你可以結合你php.ini配置文件中的相關信息修改這段代碼。
至此,經過修改php.ini配置文件中的文件上傳配置選項以及phpmyadmin配置文件後,即可解決phpmyadmin上傳文件大小限制問題,從而實現phpmyadmin上傳大文件功能。
Ⅲ 導入資料庫文件太大怎麼辦max
解決方法如下:
(1)修改php.ini適用自己有伺服器的人
大多數都修改php.ini中的upload_max_filesize,但修改了這個以後,還是提示這個問題;
那麼更改如下幾處:
修改
PHP.ini
file_uploads
on
是否允許通過HTTP上傳文件的開關。默認為ON即是開
upload_tmp_dir
文件上傳至伺服器上存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾
upload_max_filesize
20m
望文生意,即允許上傳文件大小的最大值。默認為2M
post_max_size
30m
指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認為8M
說明
一般地,設置好上述四個參數後,在網路正常的情況下,上傳<=8M的文件是不成問題
但如果要上傳>8M的大體積文件,只設置上述四項還一定能行的通。除非你的網路真有100M/S的上傳高速,否則你還得繼續設置下面的參數。
max_execution_time
300
每個PHP頁面運行的最大時間值(秒),默認30秒
max_input_time
300
每個PHP頁面接收數據所需的最大時間,默認60秒
memory_limit
128m
每個PHP頁面所吃掉的最大內存,默認8M
設定
POST
數據所允許的最大大小。此設定也影響到文件上傳。要上傳大文件,該值必須大於
upload_max_filesize。
如果配置腳本中激活了內存限制,memory_limit
也會影響文件上傳。通常說,memory_limit
應該比
post_max_size
要大。
(2)這個方法很簡單,不需要修改php.ini參數,
適用把站放在虛擬主機的人。
打開phpMyAdmin目錄下的配置文件:config.inc.php
請注意其中的這兩個參數:
$cfg['UploadDir']
=
『A『;
$cfg['SaveDir']
=
『B『;
在phpMyAdmin目錄下自行建立文件夾A和B來對應UploadDir(導入目錄)和SaveDir(導出目錄)。
導出操作:
1、登陸phpMyAdmin
2、在左側選中你需要備份導出的資料庫
3、在右側窗口中找到「導出」
4、在右側窗口底部選擇「保存於伺服器的
B/
目錄」
5、選擇壓縮模式,提交「執行」即可在B文件夾中找到該資料庫的導出數據。
導入操作:
1、上傳准備導入的數據文件到A目錄
2、登陸phpMyAdmin
3、在左側選中你需要備份導出的資料庫
4、在右側窗口中找到「Import」(導出)
5、在右側窗口「網站伺服器上載目錄」中選擇需要導入的數據文件,提交「執行」完成導入
Ⅳ php把圖片上傳到資料庫並顯示
blob類型
<?php
/*******************************************************
** 文件名:upload_file.php
** Copyright @ 2009
** 創建人:tabor
** 日期:2009年7月24日 8:00
** 修改人:
** 日期:
** 描述:文件上傳操作以及對圖片文件的處理
** 版本:
********************************************************/
class upload_file {
//保存的文件名
public $file_name;
//系統中上傳文件的臨時存放路徑
public $file_tmp_name;
//文件大小
public $file_size;
//完整的文件類型
public $full_file_type;
//文件類型
public $file_type;
//文件是否覆蓋
public $override = 1;
//文件的保存路徑
public $file_save_path = '';
//上傳文件大小的最大值 單位是位元組 2M
public public $file_max_size = 210000000;
//public public $file_max_size = 102400;
//構造函數
function __construct($file_name = '', $file_tmp_name = '', $full_file_type = '', $file_size = '', $file_save_path = '') {
$this->file_name = $file_name;
$this->file_tmp_name = $file_tmp_name;
$this->full_file_type = $full_file_type;
$this->file_size = $file_size;
$this->file_save_path = $file_save_path;
}
//取得文件的後綴名,即文件類型
function get_file_type() {
$type_array = explode('.', $this->file_name);
return $type_array[count($type_array)-1];
}
//判斷文件的大小
function check_size() {
if($this->file_size > $this->file_max_size) {
return false;
}
return true;
}
//取得文件的大小
function get_size() {
return intval($this->file_size/1024);
}
//上傳圖片 格式 jpg,png,gif,pjpeg
function check_upload_pic() {
$type = $this->get_file_type();
$type_array = array('jpg', 'png', 'gif', 'bmp');
foreach($type_array as $value) {
if($value = $type) {
return true;
}
return false;
}
}
//上傳文件 格式 zip rar
function check_upload_file() {
$type = $this->get_file_type();
$type_array = array('jpg','gif','bmp','png');
foreach($type_array as $value) {
if($value == $type) {
return true;
}
return false;
}
}
//判斷文件是否存在
function check_exist() {
$file = $this->file_save_path.$this->file_name;
return file_exists($file);
}
//上傳文件
function move_upfile() {
if(!$this->check_upload_pic()) {
echo "ok1";
return false;
}
else {
if(!$this->check_size()) {
echo "ok2";
return false;
}
else {
// if($this->check_exist()) {
// echo "該文件已存在";
// return false;
// }
// else {
$path = $this->file_save_path.$this->file_name;
if(move_uploaded_file($this->file_tmp_name, $path)) {
return true;
}
else {
return false;
}
// }
}
}
}
//將上傳的圖片打水印
/**
* $water_pic_name 將要被打水印的目標圖片
* $water_word 水印文字
* $path 將來生成水印圖片的存放路徑
*/
function create_water_pic($water_word) {
$type = $this->get_file_type();
$filename = $this->file_save_path.$this->file_name;
switch($type) {
case 'jpg':
header("content-type:image/jpeg"); //定義輸出圖像的類型
$im = imagecreatefromjpeg($filename); //載入圖片
break;
case 'png':
header("content-type:image/png");
$im = imagecreatefrompng($filename);
break;
case 'gif':
header("content-type:image/gif");
$im = imagecreatefromgif($filename);
break;
case 'bmp':
header("content-type:image/xbm"); //上傳bmp格式存在問題
$im = imagecreatefromxbm($filename); //無法打水印
break;
default: {
echo "文件格式不符";
}
}
$textcolor = imagecolorallocate($im, 56, 73,136); //設定字體的顏色
$font = "simhei.ttf"; //定義字體
$word = $water_word; //水印字元
$x = imagesx($im); //獲取圖片的寬度
$y = imagesy($im); //獲取文件的高度
$position_x = $x-80;
$position_y = $y-10;
$str = iconv('gbk', 'utf-8', $word); //將中文文字顯示出來的編碼過程
imagettftext($im, 20, 0, $position_x, $position_y, $textcolor, $font, $str);
//imagejpeg($im); //顯示圖片
$new = $this->file_save_path.'water'.$this->file_name; //生成新的文件名
switch($type) {
case 'jpg':
imagejpeg($im, $new); //生成jpg圖像
break;
case 'png':
imagepng($im, $new); //生成png圖像
break;
case 'gif':
imagegif($im, $new); //生成gif圖像
break;
case 'bmp':
imagexbm($im, $new); //生成bmp圖像 該格式的文件處理有問題
break;
default: {
echo "文件格式不符";
}
}
imagedestroy($im); //結束圖形,釋放內存空間*/
}
//生成縮略圖
/**
* $pic 圖片名 包括其擴展名,但不包括路徑
* $width 將來生成縮略圖的寬度
* $height 將來生成縮略圖的高度
* $path 生成縮略圖的存放路徑
*/
function create_thumbnail($width, $height) {
$type = $this->get_file_type();
$filename = $this->file_save_path.$this->file_name;
$img = getimagesize($filename);
//print_r($img);
//die();
switch($img[2]) {
case 1:
header("content-type:image/gif"); //定義輸出圖像的類型
$im = imagecreatefromgif($filename); //載入圖片
break;
case 2:
header("content-type:image/jpeg");
$im = imagecreatefromjpeg($filename);
break;
case 3:
header("content-type:image/png");
$im = imagecreatefrompng($filename);
break;
case 6:
header("content-type:image/xbm"); //bmp格式存在問題
$im = imagecreatefromxbm($filename); //無法打水印
break;
default: {
echo "文件格式不符";
}
}
$thumb = imagecreatetruecolor($width, $height); //創建一個新的空白的面板
$color = imagecolorallocate($im, 200, 255, 100); //調色板
/*bool imageresized ( resource dst_image, resource src_image, int dst_x, int dst_y, int src_x, int src_y, int dst_w, int dst_h, int src_w, int src_h )
imageresized() 將一幅圖像中的一塊正方形區域拷貝到另一個圖像中。dst_image 和 src_image 分別是目標圖像和源圖像的標識符。
*/
imageresized($thumb, $im, 0, 0, 0, 0, $width, $height, $img[0], $img[1]);
//imagejpeg($thumb);
$thumb_path = $this->file_save_path."thumbnail/".$this->file_name;
switch($img[2]) {
case 1:
imagejpeg($thumb, $thumb_path);
break;
case 2:
imagegif($thumb, $thumb_path);
break;
case 3:
imagepng($thumb, $thumb_path);
break;
case 6:
imagexbm($thumb, $thumb_path);
break;
default: {
echo "文件格式不符";
}
}
}
}
?>
前幾天做的一個類,可以正常的使用,但還存在問題,僅供參考!忘對您有所幫助
Ⅳ 如何用phpmyadmin導入大容量.sql文件
phpmyadmin導入大容量.sql文件步驟:
1,選中,並點擊需要需要導入到的資料庫:版
出現:導入成功,執行了 xxx 個查詢。這句話,說明資料庫導入已經成功了。
Ⅵ 如何用php導出導入大數據庫
在使用PhpMyAdmin的時候經常用到數據的導入和導出(Export/Import),但是在導入大數據的時候由於專php上傳文件的限制和腳本屬響應時間的限制,導致phpMyAdmin無法導入大數據。很多時候都是由於文件過大,從本地瀏覽上傳導入,容易中斷失敗,有沒有更好的方法呢?
方法:
在phpMyAdmin的目錄下,找到根目錄的config.inc.php文件,
打開config.inc.php文件,查找$cfg['UploadDir'],這個參數就是設定導入文件存放的目錄,這里把值設定為:ImportSQLFile。
在phpMyAdmin目錄下,建立以ImportSQLFile命名的文件夾,
把我們需要導入的數據文件,放到ImportSQLFile文件夾下面,非常簡單,
登入phpMyAdmin,選擇需要導入的數據,點擊導航條上面的「導入」按鈕,
選中「從網站伺服器上傳文件夾ImportSQLFile/中選擇:」選項,並需要導入的數據文件,
最後點擊「執行」,即可導入成功。
注意事項
如果在config.inc.php文件,沒有找到$cfg['UploadDir'],可以自己在文件中添加上去即可。
Ⅶ thinkphp關於上傳圖片到資料庫裡面大小的問題
上傳圖片的時候,進行圖片縮放:
http://document.thinkphp.cn/manual_3_2.html#image
裡面寫的很詳細,很全
Ⅷ PHP實現上傳圖片到資料庫並顯示輸出的方法
本文實例講述了PHP實現上傳圖片到資料庫並顯示輸出的方法。分享給大家供大家參考,具體如下:
1.
創建數據表
CREATE
TABLE
ccs_image
(
id
int(4)
unsigned
NOT
NULL
auto_increment,
description
varchar(250)
default
NULL,
bin_data
longblob,
filename
varchar(50)
default
NULL,
filesize
varchar(50)
default
NULL,
filetype
varchar(50)
default
NULL,
PRIMARY
KEY
(id)
)engine=myisam
DEFAULT
charset=utf8
2.
用於上傳圖片到伺服器的頁面
upimage.html
<!doctype
html>
<html
lang="en">
<head>
<meta
charset="UTF-8">
<meta
name="viewport"
content="width=device-width,
user-scalable=no,
initial-scale=1.0,
maximum-scale=1.0,
minimum-scale=1.0">
<meta
http-equiv="X-UA-Compatible"
content="ie=edge">
<style
type="text/css">
*{margin:
1%}
</style>
<title>Document</title>
</head>
<body>
<form
method="post"
action="upimage.php"
enctype="multipart/form-data">
描述:
<input
type="text"
name="form_description"
size="40">
<input
type="hidden"
name="MAX_FILE_SIZE"
value="1000000">
<br>
上傳文件到資料庫:
<input
type="file"
name="form_data"
size="40"><br>
<input
type="submit"
name="submit"
value="submit">
</form>
</body>
</html>
3.
處理圖片上傳的php
upimage.php
<?php
if
(isset($_POST['submit']))
{
$form_description
=
$_POST['form_description'];
$form_data_name
=
$_FILES['form_data']['name'];
$form_data_size
=
$_FILES['form_data']['size'];
$form_data_type
=
$_FILES['form_data']['type'];
$form_data
=
$_FILES['form_data']['tmp_name'];
$dsn
=
'mysql:dbname=test;host=localhost';
$pdo
=
new
PDO($dsn,
'root',
'root');
$data
=
addslashes(fread(fopen($form_data,
"r"),
filesize($form_data)));
//echo
"mysqlPicture=".$data;
$result
=
$pdo->query("INSERT
INTO
ccs_image
(description,bin_data,filename,filesize,filetype)
VALUES
('$form_description','$data','$form_data_name','$form_data_size','$form_data_type')");
if
($result)
{
echo
"圖片已存儲到資料庫";
}
else
{
echo
"請求失敗,請重試";
注:圖片是以二進制blob形式存進資料庫的,像這樣
4.
顯示圖片的php
getimage.php
<?php
$id
=2;//
$_GET['id'];
為簡潔,直接將id寫上了,正常應該是通過用戶填入的id獲取的
$dsn='mysql:dbname=test;host=localhost';
$pdo=new
PDO($dsn,'root','root');
$query
=
"select
bin_data,filetype
from
ccs_image
where
id=2";
$result
=
$pdo->query($query);
$result=$result->fetchAll(2);
//
var_mp($result);
$data
=
$result[0]['bin_data'];
$type
=
$result[0]['filetype'];
Header(
"Content-type:
$type");
echo
$data;
到瀏覽器查看已經上傳的圖片,看是否可以顯示
是沒有問題的,證明圖片已經以二進制的形式存儲到資料庫了
更多關於PHP相關內容感興趣的讀者可查看本站專題:《php+mysql資料庫操作入門教程》、《php+mysqli資料庫程序設計技巧總結》、《php面向對象程序設計入門教程》、《PHP數組(Array)操作技巧大全》、《php字元串(string)用法總結》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:php實現上傳圖片保存到資料庫的方法php上傳圖片存入資料庫示例分享php上傳圖片到指定位置路徑保存到資料庫的具體實現php中如何將圖片儲存在資料庫里php下將圖片以二進制存入mysql資料庫中並顯示的實現代碼php
從資料庫提取二進制圖片的處理代碼php將圖片保存入mysql資料庫失敗的解決方法php將圖片文件轉換成二進制輸出的方法php圖片的二進制轉換實現方法
Ⅸ 怎樣用php實現上傳圖片到資料庫
<?php
@session_start();
require_once("./conf/config.php");
$file_type = $_FILES["pic"]["type"];
$file_name = $_FILES["pic"]["name"];
if ((($file_type == "image/gif")
|| ($file_type == "image/jpeg")
|| ($file_type == "image/pjpeg"))
&& ($_FILES["pic"]["size"] < 1000000))
{
if(!is_dir("upload/". date("md") . "/"))
{
mkdir("upload/". date("md") . "/");
}
if (file_exists("upload/" . date("md") . "/" . $file_name))
{
echo "圖片 " . $file_name . " 文件名已存在,請更換文件名再進行上傳. ";
}
else
{
$url = "upload/" . date("md") . "/" .$file_name;
move_uploaded_file($_FILES["pic"]["tmp_name"],
"upload/" . date("md") . "/" . $file_name);
}
}
else
{
echo "圖片文件不可用";
}
$userId = $_SESSION["userId"];
if($url){
$sql = "insert into photos(url, userId) values('$url', '$userId')";
$query = mysql_query($sql);
if($query){
die('<script>alert("圖片上傳成功");window.location="/photolist.htm";</script>');
}
}
?>