⑴ 如何利用php读取txt文件再将数据插入到数据库
serial_number.txt的示例内容:
serial_number.txt:
DM00001A11 0116,
SN00002A11 0116,
AB00003A11 0116,
PV00004A11 0116,
OC00005A11 0116,
IX00006A11 0116,
创建数据表:
create table serial_number(
id int primary key auto_increment not null,
serial_number varchar(50) not null
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
php代码如下:
$conn = mysql_connect('127.0.0.1','root','') or die("Invalid query: " . mysql_error());
mysql_select_db('test', $conn) or die("Invalid query: " . mysql_error());
$content = file_get_contents("serial_number.txt");
$contents= explode(",",$content);//explode()函数以","为标识符进行拆分
foreach ($contents as $k => $v)//遍历循环
{
$id = $k;
$serial_number = $v;
mysql_query("insert into serial_number (`id`,`serial_number`)
VALUES('$id','$serial_number')");
}
备注:方法有很多种,我这里是在拆分txt文件为数组后,然后遍历循环得到的数组,每循环一次,往数据库中插入一次。
再给大家分享一个支持大文件导入的
<?php
/**
* $splitChar 字段分隔符
* $file 数据文件文件名
* $table 数据库表名
* $conn 数据库连接
* $fields 数据对应的列名
* $insertType 插入操作类型,包括INSERT,REPLACE
*/
function loadTxtDataIntoDatabase($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 = trim(file_get_contents($file));
if(preg_replace('/\s*/i','',$splitChar) == '') {
$splitChar = '/(\w+)(\s+)/i';
$replace = "$1','";
$specialFunc = 'preg_replace';
}else {
$splitChar = $splitChar;
$replace = "','";
$specialFunc = 'str_replace';
}
//处理数据体,二者顺序不可换,否则空格或Tab分隔符时出错
$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';
$splitChar = '|'; //竖线
$file = 'sqldata1.txt';
$fields = array('id','parentid','name');
$table = 'cengji';
$result = loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields);
if (array_shift($result)){
echo 'Success!<br/>';
}else {
echo 'Failed!--Error:'.array_shift($result).'<br/>';
}
/*sqlda ta1.txt
1|0|A
2|1|B
3|1|C
4|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 = ' '; //空格
$file = 'sqldata2.txt';
$fields = array('id','make','model','year');
$table = 'cars';
$result = loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields);
if (array_shift($result)){
echo 'Success!<br/>';
}else {
echo 'Failed!--Error:'.array_shift($result).'<br/>';
}
/* sqldata2.txt
11 Aston DB19 2009
12 Aston DB29 2009
13 Aston DB39 2009
-- cars
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,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8
*/
//调用示例3
require 'db.php';
$splitChar = ' '; //Tab
$file = 'sqldata3.txt';
$fields = array('id','make','model','year');
$table = 'cars';
$insertType = 'REPLACE';
$result = loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields,$insertType);
if (array_shift($result)){
echo 'Success!<br/>';
}else {
echo 'Failed!--Error:'.array_shift($result).'<br/>';
}
/* sqldata3.txt
11 Aston DB19 2009
12 Aston DB29 2009
13 Aston DB39 2009
*/
//调用示例3
require 'db.php';
$splitChar = ' '; //Tab
$file = 'sqldata3.txt';
$fields = array('id','value');
$table = 'notExist'; //不存在表
$result = loadTxtDataIntoDatabase($splitChar,$file,$table,$conn,$fields);
if (array_shift($result)){
echo 'Success!<br/>';
}else {
echo 'Failed!--Error:'.array_shift($result).'<br/>';
}
//附:db.php
/* //注释这一行可全部释放
?>
<?php
static $connect = null;
static $table = 'jilian';
if(!isset($connect)) {
$connect = mysql_connect("localhost","root","");
if(!$connect) {
$connect = mysql_connect("localhost","Zjmainstay","");
}
if(!$connect) {
die('Can not connect to database.Fatal error handle by /test/db.php');
}
mysql_select_db("test",$connect);
mysql_query("SET NAMES utf8",$connect);
$conn = &$connect;
$db = &$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 (10万)行插入:Insert 100000_line_data use 2.5534288883209 seconds
1000000(100万)行插入:Insert 1000000_line_data use 19.677318811417 seconds
//可能报错:MySQL server has gone away
//解决:修改my.ini/my.cnf max_allowed_packet=20M
⑵ PHP插入MYSQL语句
$sql="INSERT
INTO
table2(user,title,content,lastdate)
values('$_POST[user]','$_POST[title]','$_POST[content]',now())";
你的ID如果是自动生存的,那么就要把ID这个字段去掉,不然肯定插入不进去的
⑶ php 如何把一条sql语句写入数据库
<?php
$dbhost = 'localhost:3306'; // mysql服务器主机地址
$dbuser = 'root'; // mysql用户名
$dbpass = '123456'; // mysql用户名密码
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn ){
die('连接失败: ' . mysqli_error($conn))
;}
echo '连接成功<br />'; // 设置编码,防止中文乱码mysqli_query($conn , "set names utf8");
$runoob_title = '学习 Python';
$runoob_author = 'RUNOOB.COM';
$submission_date = '2016-03-06';
$sql = "INSERT INTO runoob_tbl ".
"(runoob_title,runoob_author, submission_date) ".
"VALUES ".
"('$runoob_title','$runoob_author','$submission_date')";
mysqli_select_db( $conn, 'RUNOOB' );$retval = mysqli_query( $conn, $sql );
if(! $retval ){
die('无法插入数据: ' . mysqli_error($conn))
;}
echo "数据插入成功\n";
mysqli_close($conn);
?>
按照步骤开始,多看PHP手册。
⑷ php 数据库插入数据,有两个插入语句,第一个成功,第二个不成功
1.我们应该在每一个mysql_query之后检测是否成功,不成功要输出错误原因,这样才便于分析,例如你可以这么写代码:
$out='';//总的结果
$sql="insertintousersvalues(null,'$userid','$pwd1')";
if(!mysql_query($sql))$out.="插入用户表失败,SQL:$sql<br>错误:".mysql_error();
$s_sql="select*....";//真心不明白你这个的意思
$sql="insertintouser_rolevalues(null,$role_id,'$s_sql')";
if(!mysql_query($sql))$out.="插入xx表失败,SQL:$sql<br>错误:".mysql_error();
if($out=='')echo'<script>alert("添加成功");</script>';
elseecho"<script>alert('$out');location.href='login.php';</script>";
2.看你的代码,好像$role_id没有赋值,这可能是导致失败的原因,希望你用上面的方法调试观察。
⑸ php的sql插入语句问题
页面文件修改为GB2312,浏览器的页面编码也要修改为GB2312,数据库里面的字符集要设置为GB2312(建时指定、PHPMYADMIN可以修改),这些你都做好了,那就剩下一步:
设置MYSQL连接的会话为GB2312,语句是:
mysql_query("set names gb2312"):
⑹ php中插入MySQL数据库的语句怎么写
显示数据库或表:
showdatabases;//然后可以usedatabase_name;
showtables;
更改表名:
altertabletable_namerenamenew_t;
添加列:
altertabletable_nameaddcolumnc_ncolumnattributes;
删除列:
altertabletable_namedropcolumnc_n;
创建索引:
altertablec_tableaddindex(c_n1,c_n2);
altertablec_tableadniqueindex_name(c_n);
altertablec_tableaddprimarykey(sid);
删除索引:
altertablec_tabledropindexc_n1;
更改列信息:
altertablet_tablechangec_1c_1varchar(200);
altertablet_tablemodify1c_1varchar(200);
insert插入语句:
insertintotable_name(c_1,c_2)
values('x1',1);
update语句:
updatetable_namesetc_1=1wherec_2=3;
删除数据库或者表:
droptabletable_name;
dropdatabasedatabase_name;//使用mysql_drop_db()可以删除的.
⑺ php数据库添加、删除、修改数据(mysql)
一、PHP操作MySql数据库
新增数据
?php
$query
=
"INSERT
INTO
grade
(name,email,point,regdate)
VALUE
('
李三','[email protected]',,NOW())"
;
@mysql_query($query)
or
die(
'添加数据出错:'
.mysql_error());
?
修改数据
?php
$query
=
"UPDATE
grade
SET
name='小可爱'
WHERE
id=6"
;
@mysql_query($query)
or
die(
'修改出错:'
.mysql_error());
?
删除数据
?php
$query
=
"DELETE
FROM
grade
WHERE
id=6";
@mysql_query($query)
or
die(
'删除错误:'
.mysql_error());
?
显示数据
?php
$query
=
"SELECT
id,name,email,point
FROM
grade";
$result
=
@mysql_query($query)
or
die(
'查询语句出错:'
.mysql_error());
while
(!!
$row
=
mysql_fetch_array($result))
{
echo
$row[
'id'
].
'----'
.$row['name'
].'----'
.$row
['email'
].
'----'
.$row['point'
];
echo
'<br
/
';
}
?>
二、其他常用函数
mysql_f
etch_row()
:从结果集中取得一行作为枚举数组
mysql_f
etch_assoc()
:
从结果集中取得一行作为关联数组
mysql_f
etch_array()
:
从结果集中取得一行作为关联数组,或数字数组,或二者兼有
mysql_f
etch_lengths
()
:
取得结果集中每个输出的长度
mysql_f
ield_name():
取得结果中指定字段的字段名
mysql_num_rows():
取得结果集中行的数目
mysql_num_f
ields():取得结果集中字段的数目
mysql_get_client_inf
o()
:
取得
MySQL
客户端信息
mysql_get_host_info():
取得
MySQL
主机信息
mysql_get_proto_info():
取得
MySQL
协议信息
mysql_get_server_inf
o()
:
取得
MySQL
服务器信息
⑻ php 插入语句
php一般都是和mysql结合的,而mysql的sql插入语句为:
insert into tablename (cols1,cols2...) values (val1,val2...);
⑼ PHP+MYSQL如何插入记录到数据库
“INSERT INTO”语句的作用是:向一个数据库的表中插入一条新的记录。向一个数据库表中插入数据“INSERT INTO”的作用是:向一个数据库的表中插入一条新的记录。语法INSERT INTO table_name
VALUES (value1, value2,....) 你可以在指定的列中插入数据,具体如下:INSERT INTO table_name (column1, column2,...)
VALUES (value1, value2,....) 注意:SQL语句是“字母大小写不敏感”的语句(它不区分字母的大小写),即:“INSERT INTO”和“insert into”是一样的。在PHP内创建数据库,我们需要在mysql_query()函数内使用上述语句。这个函数是用来发送MySQL数据库连接建立的请求和指令的。案例在前一章里,我们建立了一张名为“Person”的表,其中包含三个纵列:"Firstname", "Lastname" 和 "Age"。在下面的案例当中,我们还会用到同一张表,并在其中加入两条新的记录:<?php
$con = mysql_connect("localhost","peter","abc123");if (!$con){die('Could not connect: ' . mysql_error());
}mysql_select_db("my_db", $con);mysql_query("INSERT INTO person (FirstName, LastName, Age)
VALUES ('Peter', 'Griffin', '35')");mysql_query("INSERT INTO person (FirstName, LastName, Age)
VALUES ('Glenn', 'Quagmire', '33')");mysql_close($con);
>把一张表中的数据插入数据库中现在,我们将建立一个HTML表单;通过它我们可以向“Person”表中加入新的记录。下面演示这个HTML表单:<html>
<body><form action="insert.php" method="post">
Firstname: <input type="text" name="firstname" />
Lastname: <input type="text" name="lastname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form></body>
</html> 在上述案例中,当一个用户点击HTML表单中的“提交submit”按钮后,表单中的数据会发送到“insert.php”。“insert.php”文件与数据库建立连接,并通过PHP $_POST变量获取表单中的数据;此时,mysql_query()函数执行“INSERT INTO”语句,这样,一条新的记录就被添加到数据库的表单当中了。下面试“insert.php”页面的代码:<?php
⑽ PHP向数据库中插入数据
你的代码没了?
你光写出个sql语句
不执行
他怎么可能插入成功?
mysql_query($sql);
写上。。
$query
=
mysql_query($sql);
if($query){
echo
'数据插入成功。';
}else{
echo
'数据插入失败。';
}