php用pdo连接操作sqlite数据库的源代码
问题:如何在php里面推荐用PDO方式连接 Sqlite 数据库
答案:先修改PHP.ini启用PDO和PDO_sqlite
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
# 【PDO连接sqlite数据库】
$pdo = new \PDO('sqlite:'.dirname(__FILE__).'zzzyk.com.db');
# 注意文件路径请用单引号,双引号很可能会因为转义而到导致异常。
# 设置数据库编码为utf-8$pdo->exec('set names utf8');
# 【查看PDO都有那些方法】
echo '<pre>';
print_r(get_class_methods('PDO'));
echo '</pre>';
# 【示例1:创建数据库表】
$sql = "CREATE TABLE `user` (
`id` int(10),
`name` varchar(50),
`create_time` int(10),
`update_time` int(10),
PRIMARY KEY (`id`)
)
";
$res = $pdo->exec($sql);
if($res){
echo '创建表成功<br/>';
}else{
echo '创建表失败<br/>';
}
# 【示例2:添加数据】:添加数据到company表中,并返回数据在表中的ID是多少!
$res = $pdo->exec("insert into user(name) values('站长资源库')");
if($res){
echo '11添加成功数据ID为:'.$pdo->lastinsertid().'<br/>';
}
$res = $pdo->query("insert into user(name) values('站长资源库')");
if($res){
echo '22添加成功数据ID为:'.$pdo->lastinsertid().'<br/>';
}
# 【示例3:更新数据】:
$res = $pdo->exec("update user set name='zzzyk.com' where id=2");
if($res){
echo '更新数据成功<br/>';
}
$res = $pdo->query("update user set name='易做图头像制作' where id=2");
if($res){
echo '成功更新数据【'.$res->rowCount().'】条<br/>';
}
# 【示例4:删除数据】:
$res = $pdo->exec("delete from user where id=3");
if($res){
echo '删除数据成功<br/>';
}
$res = $pdo->query("delete from user where id=3");
if($res){
echo '成功删除数据【'.$res->rowCount().'】条<br/>';
}
# 【示例5:查询数据】:
$res = $pdo->query("select id,name from user");
$data = [];
# 1:FETCH_ASSOC 关联数组形式返回
# 2:FETCH_NUM 数字索引数组形式返回
# 设置返回数据类型方法1:
$res->setFetchMode(\PDO::FETCH_NUM);
while($row = $res->fetch()){
$data[] = $row;
}
echo '<pre>';
print_r($data);
echo '</pre>';
# 设置返回数据类型方法2:
while($row = $res->fetch(\PDO::FETCH_ASSOC)){
$data[] = $row;
}
echo '<pre>';
print_r($data);
echo '</pre>';
# 【示例6:统计数据】:统计company表有多少条数据
$num = $pdo->query("select count(*) from user");
echo '共有数据:【'.$num->fetchColumn().'】条';
# 【示例7:防sql注入】:实例,使用前先看文字说明,会理解的更透彻!
# PDO连接mysql数据库(数据库名:lmgg ,账户:root,密码:root)
$pdo = new \PDO('sqlite:'.dirname(__FILE__).'appAll.db');
# 禁用prepared statements的仿真效果
$pdo->setAttribute(\PDO::ATTR_EMULATE_PREPARES, false);
$pdo->query("set names 'utf8'");
$sql="select * from user where name = ?";
$res = $pdo->prepare($sql);
$name = '小川编程添加111';
$exeres = $res->execute(array($name));
$data = [];
if($exeres){
while ($row = $res->fetch(\PDO::FETCH_ASSOC)){
$data[] = $row;
}
}
echo '<pre>';
print_r($data);
echo '</pre>';
# 关闭数据库链接
$pdo = null;
?>