検索
ホームページphp教程php手册PHP は txt ファイルを読み取って SQL を形成し、それをデータベース コードに挿入します (Zjmainstay からのオリジナル)

/**
* $splitChar フィールド区切り文字
* $file データ ファイル ファイル名
* $table データベース テーブル名
* $conn データベース接続
* $fields データに対応する列名
* $insertType 挿入操作タイプ (INSERT、REPLACE を含む)
*/

コードをコピー コードは次のとおりです:


/**
* $splitChar フィールド区切り文字
* $file データ ファイル ファイル名
* $table データベース テーブル名
* $conn データベース接続
* $fields データに対応する列名
* $insertType 挿入操作タイプ (INSERT、REPLACE を含む)
*/
functionloadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields=array(),$insertType='INSERT'){
if(empty($fields) )) $ head = "{$insertType} INTO `{$table}` VALUES('";
else $head = "{$insertType} INTO `{$table}`(`".implode('`, `', $fields)."`) VALUES('"; //データヘッダ
$end = "')"
$sqldata = トリム(file_get_contents($file)); preg_replace(' /s*/i','',$splitChar) == '') {
$splitChar = '/(w )(s )/i';
$replace = "$1'; '";
$specialFunc = 'preg_replace';
}else {
$splitChar = $splitChar;
$replace = "','";
$specialFunc = 'str_replace';
}
//データ本体の処理では、2 つの順序を入れ替えることはできません。そうしないと、スペースまたはタブ区切り文字を使用するとエラーが発生します。
$sqldata = preg_replace('/(s*)(n )(s*)/i',' '),('',$sqldata); //改行を置換
$sqldata = $specialFunc($splitChar,$replace,$sqldata); //区切り文字を置換>$query = $head.$sqldata .$end; //データのスプライシング
if(mysql_query($query,$conn)) return array(true);
else {
return array(false, mysql_error($conn),mysql_errno($ conn));
}
}
//呼び出し例 1
require 'db.php'; /垂直バー
$file = 'sqldata1.txt';
$fields = array('id','parentid','name'); result = loadTxtDataIntoDatabase($splitChar,$file ,$table,$conn,$fields);
if (array_shift($result)){
echo '成功!
'; }else {
echo '失敗しました !--エラー:'.array_shift($result).'
';
}
/*sqlda ta1.txt
|0| A
|1|B
|1|C
|2|D
-- cengji
CREATE TABLE `cengji` (
`id` int(11) NOT NULL AUTO_INCREMENT 、
`parentid` int( 11) NOT NULL、
`name` varchar(255) DEFAULT NULL、
PRIMARY KEY (`id`)、
UNIQUE KEY `parentid_name_unique` (`parentid` ,`name`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1602 DEFAULT CHARSET=utf8
*/
//呼び出し例 2
require 'db.php';
$splitChar = ' '; //space
$file = 'sqldata2.txt';
$fields = array('id','make','model','year');車';
$result =loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields);
if (array_shift($result)){
echo '成功!
';
}else {
echo '失敗しました!--エラー:'.array_shift($result).'
';
}
/* sqldata2.txt
アストン DB19 2009
アストン DB29 2009
アストン DB39 2009
-- 車
CREATE TABLE `cars` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`make` varchar(16) NOT NULL 、
`model` varchar(16) DEFAULT NULL、
`year` varchar(16) DEFAULT NULL、
主キー (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET= utf8
*/
//呼び出し例 3
require 'db.php';
$splitChar = ' '; $file = 'sqldata3.txt';
$fields = array('id','make','model','year');
$table = 'cars'; 'REPLACE';
$result =loadTxtDataIntoDatabase ($splitChar,$file,$table,$conn,$fields,$insertType);
if (array_shift($result)){
echo '成功!
';
}else {
echo '失敗しました!--エラー:'.array_shift($result).'
}
/ * sqldata3.txt
Aston DB19 2009
Aston DB29 2009
Aston DB39 2009
*/
//呼び出し例 3
require 'db.php'; = ' '; //Tab
$ file = 'sqldata3.txt';
$fields = array('id','value'); //テーブルは次のようになります。存在しません
$result =loadTxtDataIntoDatabase($splitChar ,$file,$table,$conn,$fields);
if (array_shift($result)){
echo 'Success!
}else {
echo '失敗しました!--エラー:'.array_shift($result).'
'
}
//添付ファイル: db. php
/* //この行をコメント化します
?>
static $connect = null
static $table = 'jilian'; (!isset($connect)) {
$connect = mysql_connect("localhost","root","");
if(!$connect) {
$connect = mysql_connect("localhost") ,"Zjmainstay","");
}
if(!$connect) {
die('データベースに接続できません。/test/db.php による致命的なエラー処理'); >}
mysql_select_db("test", $connect);
mysql_query("SET NAMES utf8",$connect);
$conn = &$connect;
}
?>
//*/


データテーブル構造



コードをコピー

コードは次のとおりです:


--データテーブル構造:
-- 100000_insert,1000000_insert
CREATE TABLE `100000_insert` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parentid` int (11) NOT NULL、
`name` varchar(255) DEFAULT NULL、
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
100000 (100,000 )行挿入: Insert 100000_line_data use 2.5534288883209 秒
1000000 (100万) 行挿入: Insert 1000000_line_data use 19.677318811417 秒
//考えられるエラー: MySQL サーバーが消えました
//解決策: ini/my を変更します。 .cnf max_allowed_pa​​cket=20M


作成者: Zjmainstay
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい