php SQLite数据库的配置方法详解

 更新时间:2016年11月25日 16:35  点击:2309
SQLite数据库安装好之后我们只要在php.ini中把 ;extension=php_pdo_sqlite.dll 前面的;取消掉就可以了,下面我来给大家简单的介绍一下吧。

SQLite数据库的配置
  1.打开php.ini
  2.启用extension=php_sqlite.dll扩展(如果需要支持PDO连接的话还需要启用extension=php_pdo_sqlite.dll扩展)
  3.重启Apache服务器

sqlite中比较常用的函数

  打开或者创建数据库操作:sqlite_open(string 目标数据库的名称[,int 操作该数据库的读写模式,string 返回数据库的错误信息]);//使用该方法的时候,如果第一个参数中指定的数据库已经存在的话就进行连接,如果不存在的话就自动创建;第二个参数的读写模式默认是0666
  执行SQL语句操作:sqlite_query(resource 数据库连接的句柄,string SQL语句);//类似于mysql中的mysql_query()方法
  统计表中的总记录数:sqlite_num_rows(resource 执行SQL语句后返回的数据集资源);//类似于mysql中的mysql_num_rows()方法
  最后一次操作的数据ID:sqlite_last_insert_rowid(resource 数据库连接的句柄);//类似于mysql中的mysql_insert_id()方法
  返回查询结果的数据集指针:sqlite_fetch_array(resource 数据库连接的句柄,resource 执行SQL语句后返回的数据集资源)类似于mysql中的mysql_fetch_array()方法
SQLite数据库操作实例
1.创建一个名称为newdb的数据库
  $db=sqlite_open("newdb.db") or die('创建或连接数据库失败!');
2.在newdb数据库中新建一个名称为mytable的表
  sqlite_query($db,"CREATE TABLE mytable ( uid INT ( 11 ) NOT NULL PRIMARY KEY , uname VARCHAR ( 30 ) NOT NULL ) ") or die('新建表失败!');
3.插入数据到mytable中
  sqlite_query($db,"insert into mytable values (1,'Tom')") or die('添加数据失败!');
4.取出表中所有的数据并显示出来
  $val=sqlite_query($db,"select * from mytable");
  while($ru=sqlite_fetch_array($val)){
    print_r($ru);
  }
5.关闭newdb数据库
  sqlite_close($db);

SQLite有一款类似于phpMyadmin的数据库管理工具

SQLiteManager管理SQLite数据库
  SQLite是一种轻量级的文件型数据库,它遵守ACID的关联式数据库管理系统,它占用资源低、扩展性强、兼容性强。
  PHP与SQLite的关系就好像是ASP与Access的关系,Access是文件型数据库,SQLite也是文件型数据库,文件型数据库的特点就是,不用像Mysql、MSSQL、Oracle等数据库那样需要另外安装,使用Access或是SQLite之类的文件型数据库前只需要下载相应的扩展驱动包,然后放到相应的扩展目录,稍作配置就可以使用了。现在的PHP5及以上的版本都内置了SQLite数据库扩展,只需要在php.ini中开启扩展便可以直接使用了,详情参考:PHP5中SQLite数据库的配置。
  据说SQLite的源码包只有不到3万行的代码,加起来还不到300KB,它的“轻量”和“效率”可想而知。
  SQLiteManager与phpMyAdmin的不同之处:
  SQLiteManager不会像phpMyAdmin那样能自动识别你的数据库,使用SQLiteManager前,需要手动的对数据库的路径和名称进行配置,配置好之后才可以在SQLiteManager下管理数据库。
SQLiteManager管理SQLite数据库操作流程
  1.打开WAMP环境中自带的SQLiteManager
  2.在主页中的名称输入框中输入要管理的数据库名称(已经创建好的数据库名称)
  3.点击浏览,找到数据库文件,打开
  4.在路径中输入数据库文件的绝对路径,我的是在D:/www/mydb.db(注意斜杠的方向!)
  5.点击保存
  这样,SQLiteManager就可以与刚刚新建的数据库建立连接了,此时就可以在SQLiteManager中像phpMyAdmin一样管理你的SQLite数据库了。

php导入excel文件入mysql数据库我们是需一借助一个phpexcel类文件了,有了这个类文件我们就可以快速简单的导入excel到mysql数据库中,下面来给大家整理一个例子,希望能对大家有帮助。

导入前我们需要先准备一个数据库,sql语句代码

 代码如下 复制代码


/*
Navicat MySQL Data Transfer

Source Server         : www.111cn.net localhost
Source Server Version : 50133
Source Host           : localhost:3306
Source Database       : test

Target Server Type    : MYSQL
Target Server Version : 50133
File Encoding         : 65001

Date: 2011-10-11 14:11:38
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `execl`
-- ----------------------------
DROP TABLE IF EXISTS `execl`;
CREATE TABLE `execl` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;

-- ----------------------------
-- Records of execl
-- ----------------------------
INSERT INTO `execl` VALUES ('14', 'jim');
INSERT INTO `execl` VALUES ('15', 'taurus');


php处理程序,在这里我们需要使用一个phpexcel类文件了,这个可以百度搜索下载。

 代码如下 复制代码

<?php
if($_FILES['execl']['name']){
 $db = mysql_connect('localhost','root','');
  mysql_select_db('test');
  mysql_query('set names gbk');
  require_once 'reader.php';
  $data = new Spreadsheet_Excel_Reader();
  $data->setOutputEncoding('CP936');
  $data->read($_FILES['execl']['name']);
 error_reporting(E_ALL ^ E_NOTICE);
 $sql   = "";
 for($i=1;$i<=$data->sheets[0]['numRows'];$i++)
 {
  if($data->sheets[0]['cells'][$i][1]!=""){
   $sql = "INSERT INTO `execl`(`name`)values('".$data->sheets[0]['cells'][$i][2]."');";
   if(mysql_query($sql)){
    
    echo '成功';
   }else{
    die('失败');
   }
  } 
 }
}
?>
<head>
</head>
<body>
  <form action="" method="post" enctype="multipart/form-data">
      <input type="file" name="execl" />
      <input type="submit" value="导入数据" />
  </form>
</body>

php连接mysql中文查询乱码问题解决非常的简单的,因为这个是我们文档编码与数据库编码不统一所导致的哦,解决办法有许多下面来给各位总结一下.


测试环境

mysql编码为uft-8
mysql版本为mysql5.X
php版本为php 5.X

解决办法

1.确保HTML代码中声明的charset值等于utf-8,代码如下

 代码如下 复制代码

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>


1:确认phpmyadmin用的mysql字符集为utf-8 unicode(utf8);mysql连接校对为utf8_general_ci,language为中文-chinese simplified

2:确认每个数据表的“整理为”utf8_general_ci;

3:在php连接mysql数据库后加个语句来指定数据库的字符集,

例如:

 代码如下 复制代码

$conn=mysql_connect("localhost","root","你的密码"); //连接数据库
mysql_query("set name 'utf8'");

如果上面解决不了我们可如下操作

 代码如下 复制代码

$link = mysql_connect('localhost','root','');
mysql_query("set character_set_connetion=utf8,character_set_result=utf8, character_set_client=binary",$link);

最后找到一个相对比较全面的解决办法

后来找到了解决方案,记录如下:

 代码如下 复制代码

 //尝试创建数据库表

mysql_select_db("courseTable",$con);
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER_SET_CLIENT=utf8");
mysql_query("SET CHARACTER_SET_RESULTS=utf8");


总结,关于mysql中文乱码我是找到很多的办法但最好发现网上很多解决mysql乱码都掉JB蛋的,真正的只要在查询连接时加上mysql_query("SET NAMES 'utf8'");就可以解决了。

我相信很多朋友还不知道如何来批量删除不要的数据,单使用php 批量删除数据我们需要结合mysql的in条件来实现了,这个估计大家看了这句话就明白如何做了,下面我就来给需要了解的朋友详细分析批量删除数据过程。

我们删除需要的sql语法

delete from aaaa where id in(1,2,3)这里面的1,2,3就是我们需要删除的记录了

那么在php中如何来做

1、首先在文章列表页面(list.php),将多选筐命名为:“$del_id[]”,值为文章ID号。
 例如(list.php):

 代码如下 复制代码

<form name="del_form" action="del.php" method="post">
<?php
$result=mysql_query("select * from news");
while($rs=mysql_fetch_array($result)){
 ?>
<input name="del_id[]" type="checkbox" id="del_id[]" value="<?=$rs[id]?>" /><?=$rs[title]?>
 <?php
}
 ?>
 </form>

2、处理页面(del.php):

<?php
 if($del_id!=""){
 $del_num=count($del_id);
 for($i=0;$i<$del_num;$i++){
 mysql_query("Delete from news where id='$del_id[$i]'");
 }
 echo("<script type='text/javascript'>alert('删除成功!');history.back();</script>");
}else{
 echo("<script type='text/javascript'>alert('请先选择项目!');history.back();</script>");
}
?>

案例分析:

上面批量核心代码是 表单名为del_id[]与

 代码如下 复制代码

for($i=0;$i<$del_num;$i++){
 mysql_query("Delete from news where id='$del_id[$i]'");
}

这个就是获取提交过来的数组然后我们再遍历一条条删除了这个与我们最前面的说法更小一样,其实我们可以加地改进

 代码如下 复制代码

$ids = implode(',',$_POST['del_id']);
$sql ="delete from aaaa where id in($ids)";
mysql_query($Sql);


这样就可以简少很多的语句哦,当然上面需要判断提交过来的是不是数组了,最后我们对del.php文件进行代码优化删除操作

 代码如下 复制代码

<?php
 if(is_array($del_id)){
 
$ids = implode(',',$_POST['del_id']);
$sql ="delete from aaaa where id in($ids)";
 if( mysql_query($Sql))
{
echo '删除成功';
}
else
{
echo '删除失败';
}
}

 
}
?>

在php中操作mysql数据库的方法有常用的三种,我们使用最多的估计是mysql或mysqli当然还有一个pdo_mysql了,下面整理了一些例子给各位参考

一.mysql数据库

 代码如下 复制代码

<?php
$conn=mysql_connect("localhost", "root", "123456") or die("数据库连接失败");
mysql_select_db("test") or die("选择数据库失败");;
$sql="select * from user";
$data=mysql_query($sql);
echo '<table border="1" align="center" width="800">'
while($row=mysql_fetch_assoc($result)){
echo '<tr>';
foreach($row as $col){
echo '<td>'.$col.'</td>';
}
echo '</tr>';
};
echo '</table>';
mysql_close();

补充

 代码如下 复制代码

 // 从表中提取信息的sql语句
$strsql="SELECT * FROM `gbook`";
// 执行sql查询
$result=mysql_db_query($mysql_database, $strsql, $conn);
// 获取查询结果
$row=mysql_fetch_row($result);

 
echo '<font face="verdana">';
echo '<table border="1" cellpadding="1" cellspacing="2">';

// 显示字段名称
echo "</b><tr></b>";
for ($i=0; $i<mysql_num_fields($result); $i++)
{
  echo '<td bgcolor="#000F00"><b>'.
  mysql_field_name($result, $i);
  echo "</b></td></b>";
}
echo "</tr></b>";
// 定位到第一条记录
mysql_data_seek($result, 0);
// 循环取出记录
while ($row=mysql_fetch_row($result))
{
  echo "<tr></b>";
  for ($i=0; $i<mysql_num_fields($result); $i++ )
  {
echo '<td bgcolor="#00FF00">';
echo $row[$i];
echo '</td>';
  }
  echo "</tr></b>";
}
  
echo "</table></b>";
echo "</font>";
// 释放资源
mysql_free_result($result);
// 关闭连接
mysql_close($conn); 

二.pdo_mysql(推荐)

连接:

 代码如下 复制代码


$dsn = "mysql:host=localhost;dbname=test";
$username = 'root';
$password = '123456';
$options = array(
   PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

$pdo = new PDO($dsn, $username, $password, $options);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
增:

方法1: 绑定关联数组

$str=$pdo->prepare("INSERT INTO `user` (`username`, `password`) VALUES (:username,:password)");
$str->execute(array(":username"=>"test", ":password"=>"passwd"));

方法2: 绑定索引数组


$str=$pdo->prepare("INSERT INTO `user` (`username`, `password`) VALUES (?,?)");
$str->execute(array("test", "passwd"));
删:


$str=$pdo->prepare("delete from user where id > 3");
$str->execute();

改:

$str=$pdo->prepare("UPDATE `user` SET username=:username,password=:password where id=:id");
$str->execute(array(":username"=>"test", ":password"=>"passwd", ":id"=>"3"));
查:
方法1: 单个取出,循环遍历,返回到数组

$str=$pdo->prepare("select * from user where id > :id  order by id");
$str->execute(array(":id"=>2));
$str->setFetchMode(PDO::FETCH_ASSOC);
//共三种:1.PDO::FETCH_BOTH(默认)  2.FETCH_ASSOC  3.FTECH_NUM
 
while($data=$str->fetch()){
print_r($data);
echo '<br>';
}

方法2: 全部取出,返回到二维数组


$str=$pdo->prepare("select * from user order by fid");
$str->execute();
$data=$str->fetchAll(PDO::FETCH_NUM);
print_r($data);

方法3:单个取出,循环遍历,绑定字段名到变量


$str=$pdo->prepare("select fid,username,password from user order by id");
$str->execute();
 
$str->bindColumn("id",$id);
$str->bindColumn("username",$username);
$str->bindColumn(3,$password);
 
while($str->fetch()){
echo "$id | $username | $password <br>";
}
echo "总记录数:".$str->rowCount()."<br>";
echo "总字段数:".$str->columnCount()."<br>";


二.mysqli

 代码如下 复制代码

(用mysqli链接MYSQL数据库)
requery_once("config.ini.php");
$mysqliObj = new mysqli($dbhost,$dbuser,$dbpwd,$dbname);
if(mysqli_connect_errno()){
 echo "连接失败".mysqli_connect_error();
 exit();
}
$mysqliObj->query("set name $charName");

(其他操作)
 
查询
-----------------------------------------------------
(单条查询)
$sql = "drop table  if exists user;";
$mysqliObj->query($sql);
 
(多条查询)
$musqliObj->multip_query($sql)
 
 
 
返回执行$sql受影响的行数()
----------------------------------------------------
if($mysqliObj->query($sql))
echo $mysqliObj->affected_rows;
 
insert 插入时,返回插入的id (很有用)
---------------------------------------------------
 $num = $mysqliObj->insert_id;

<?php
$mysqli=new mysqli("localhost", "root", "123456", "test");
$sql="select * from user  order by id";
$result=$mysqli->query($sql);
echo '<table align="center" border="1" width="800">';
while($row=$result->fetch_assoc()){
echo '<tr>';
foreach($row as $col){
echo '<td>'.$col.'</td>';
}
echo '</tr>';
}
echo '</table>';
$mysqli->close();


三种处理查询结果
-------------------------------------------------------
 

 代码如下 复制代码
$sql = "select * from user";
 $result = $mysqli->query($sql);
 
(1)fetch_row()   返回索引数组
fetch_row()
while(list($id,$name,$pwd)=$result->fetch_row()){
echo "id: ".$id." name:".$name."  pwd:".$pwd."<br>";
 
}
(2)fetch_assoc()  返回关联数组
fetch_assoc()
while ($row = $result->fetch_assoc()){
 echo "id:".$row["userId"]." name:".$row["userName"]."  pwd:".$row["password"]."<br>";
}
 
(3)fetch_object()返回对象
while($row = $result->fetch_object()){
echo "id:".$row->userId." name:".$row->uerName."  pwd:".$row->password."<br>";
 
}
[!--infotagslink--]

相关文章

  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • c#异步读取数据库与异步更新ui的代码实现

    这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
  • node.js如何操作MySQL数据库

    这篇文章主要介绍了node.js如何操作MySQL数据库,帮助大家更好的进行web开发,感兴趣的朋友可以了解下...2020-10-29
  • Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
  • springBoot 项目排除数据库启动方式

    这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
  • Linux 下使用shell脚本定时维护数据库的案例

    这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • C#简单访问SQLite数据库的方法(安装,连接,查询等)

    这篇文章主要介绍了C#简单访问SQLite数据库的方法,涉及SQLite数据库的下载、安装及使用C#连接、查询SQLIte数据库的相关技巧,需要的朋友可以参考下...2020-06-25
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • C#连接加密的Sqlite数据库的方法

    对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密,下面通过本文给大家介绍C#连接加密的Sqlite数据库的方法,感兴趣的朋友一起看看吧...2020-06-25
  • Java连接数据库oracle中文乱码解决方案

    这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16