大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
思路:
成都创新互联于2013年成立,先为新源等服务建站,新源等地企业,进行企业商务咨询服务。为新源企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
读取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 = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e-getMessage();
}
//读取file.csv文件
if (($handle = fopen("file.csv", "r")) !== FALSE) {
while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
//写入数据库
$sth = $db-prepare('insert into test set name=:name,age=:age');
$sth-bindParam(':name',$row[0],PDO::PARAM_STR,255);
$sth-bindParam(':age',$row[1],PDO::PARAM_INT);
$sth-execute();
}
fclose($handle);
}
数据表
CREATE TABLE `test` (
`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NULL DEFAULT '' COLLATE 'utf8mb4_bin',
`age` INT(10) NULL DEFAULT '0',
PRIMARY KEY (`id`)
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
运行结束后,数据库中会插入csv中的三行数据
本文实例讲述了PHP使用pdo连接access数据库并循环显示数据操作。分享给大家供大家参考,具体如下:
PDO连接与查询:
try
{
$conn
=
new
PDO("odbc:driver={microsoft
access
driver
(*.mdb)};
dbq=".realpath("MyDatabase.mdb"))
or
die("链接错误!");
//echo
"链接成功!";
}
catch(PDOException
$e){
echo
$e-getMessage();
}
$sql
=
"select
*
from
users";
1.
foreach()方法
foreach
($conn-query($sql)
as
$row)
{
$row["UserID"];
$row["UserName"];
$row["UserPassword"];
}
2.
while()方法
$rs
=
$conn-query($sql);
$rs-setFetchMode(PDO::FETCH_NUM);
while($row=$rs-fetch()){
$row[0];
$row[1];
$row[2];
}
php使用PDO抽象层获取查询结果,主要有三种方式:
(1)PDO::query()查询。
看下面这段php代码:
?php
//PDO::query()查询
$res
=
$db-query('select
*
from
user');
$res-setFetchMode(PDO::FETCH_NUM);
//数字索引方式
while
($row
=
$res-fetch()){
print_r($row);
}
?
(2)PDO-exec()处理sql
?php
//PDO-exec()处理sql
$db-setAttribute(PDO::ATTR_ERRMODE,
PDO::ERRMODE_EXCEPTION);
$res
=
$db-exec("insert
into
user(id,name)
values('','php点点通')");
echo
$res;
?
(3)PDO::prepare()预处理执行查询
?php
//PDO::prepare()预处理执行查询
$res
=
$db-prepare("select
*
from
user");
$res-execute();
while
($row
=
$res-fetchAll())
{
print_r($row);
}
?
setAttribute()
方法是设置属性,常用参数如下:
PDO::CASE_LOWER
--
强制列名是小写
PDO::CASE_NATURAL
--
列名按照原始的方式
PDO::CASE_UPPER
--
强制列名为大写
setFetchMode方法来设置获取结果集的返回值的类型,常用参数如下:
PDO::FETCH_ASSOC
--
关联数组形式
PDO::FETCH_NUM
--
数字索引数组形式
PDO::FETCH_BOTH
--
两者数组形式都有,这是默认的
PDO::FETCH_OBJ
--
按照对象的形式,类似于以前的
mysql_fetch_object()
对上面总结如下:
查询操作主要是PDO::query()、PDO::exec()、PDO::prepare()。
PDO-query()
—
处理一条SQL语句,并返回一个“PDOStatement”
PDO-exec()
—
处理一条SQL语句,并返回所影响的条目数
PDO::prepare()主要是预处理操作,需要通过$rs-execute()来执行预处理里面的SQL语句
最后介绍两个常用的函数:
(1)fetchColumn()获取指定记录里一个字段结果,默认是第一个字段!
?php
$res
=
$db-query('select
*
from
user');
//获取指定记录里第二个字段结果
$col
=
$res-fetchColumn(1);
echo
$col;
?
(2)fetchAll(),从一个结果集中获取数据,然后存放在关联数组中
?php
$res
=
$db-query('select
*
from
user');
$res_arr
=$res-fetchAll();
print_r($res_arr);
?
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库技巧总结》、《php+Oracle数据库程序设计技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
您可能感兴趣的文章:PHP使用PDO连接ACCESS数据库PHP数据库链接类(PDO+Access)实例分享php中mysql连接方式PDO使用详解关于php连接mssql:pdo
odbc
sql
serverPhp中用PDO查询Mysql来避免SQL注入风险的方法php中在PDO中使用事务(Transaction)全新的PDO数据库操作类php版(仅适用Mysql)php使用pdo连接并查询sql数据库的方法php使用pdo连接mssql
server数据库实例PHP实现PDO的mysql数据库操作类
这个简单啊!首页做个前台输入姓名和会员卡信息的页面,我做个简单的页面给你看
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "html xmlns="headmeta http-equiv="Content-Type" content="text/html; charset=utf-8" /title会员查询系统/title/head bodyform id="form1" name="form1" method="post" action="test.php" p label for="name"/label input type="text" name="name" id="name" / /p p label for="vipid"/label input type="text" name="vipid" id="vipid" / /p p input type="submit" name="button" id="button" value="查询" / /p/form/body/html然后我给你一个test.php的文件代码:?php$name = trim($_POST['name']);$vipid = trim($_POST['vipid']);$con = mysql_connect("127.0.0.1","数据库用户名","数据库密码");if (!$con) { die('Could not connect: ' . mysql_error()); }$a = mysql_select_db("数据库名字", $con);$sql = "select * from kh_customer where name = '$name' and vipid = '$vipid'";$result = mysql_query($sql);while($row = mysql_fetch_array($result)) { echo $row['name'] . " " . $row['data']; echo "br /"; }mysql_close($con);?
if ($strleng100){
//如果大于100条就每次写入100,休息1秒,然后继续写,直到写完为止
$write_count = floor($strleng/100);
while ($write_count 0){
for ($i=0;$i100;$i++){
echo "INSERT INTO tbl_name (a,b,c) VALUES(1,2,3)";//写100次就休息
}
//echo "INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);";这样可以一次插入多条数据,效率更高
//参考
$write_count -=1 ;
sleep(1);
echo '休息1秒';
}
}
php 连接数据库的几种方式
$con = mysql_connect(服务器,服务器用户名,服务器密码默认为“”)
mysql_select_db(数据库,$con)选择数据库
mysql_query($sql,$con);
$con = mysqli_connect(服务器,服务器用户名,服务器密码默认为“”,数据库名)
$query = mysqli_query($conn,$sql);
$conn = new mysqli(服务器,服务器用户名,服务器密码默认为“”,数据库名);
$query = $conn-query($sql);
$sql="CREATE TABLE $table (
`字段_id` INT( 4 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`字段名` VARCHAR( 255 ) NOT NULL ,
`字段名` VARCHAR( 255 ) NOT NULL
)";
$query=mysqli_query($link,$sql);
if($query==true){
echo "成功";
}else{
echo "失败";
}