ezSQL是一个非常好用的PHP数据库操作类 著名的开源博客WordPress的数据库操作就使用了ezSQL的MySQL部分 该数据库操作类支持几乎所有主流的数据库 如 PHP PDO mySQL Oracle InterBase/FireBird PostgreSQL SQLite以及MS SQL等 ezSQL具有很强的调试功能 可以快速地查看SQL代码的执行情况 使用ezSQL 可以为我们节省开发时间 简化代码并提高运行效率
网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了费县免费建站欢迎大家使用!
ezSQL的优点就不用多说了 它小巧 快速 简单 易用 并且开源 还有就是安全 你没想到的细节它都为你考虑了 你只需要在你的脚本开头包含相关的PHP文件 然后你就可以使用更好用的一套ezSQL函数来代替标准的PHP数据库操作函数
下面是ezSQL中一些主要的函数
$db get_results 从数据库中读取数据集
$db get_row 从数据库中读取一行数据
$db get_col 从数据库中读取一列指定的数据集
$db get_var 从数据库的数据集中读取一个值
$db query 执行一条SQL语句
$db debug 打印最后执行的SQL语句及其返回的结果
$db vardump 打印变量的结构及其内容
$db select 选择一个新数据库
$db get_col_info 获取列的信息
$db hide_errors 隐藏错误
$db show_errors 显示错误
ezSQL的使用方法很简单 首先下载ezSQL源代码 然后将ez_sql_core php文件和ez_sql_mysql php文件(这里以mySQL为例)放到与你的脚本文件相同的目录下 然后将下面的代码添加到你的脚本文件的最前面 这样就可以正常使用ezSQL了
?php// 包含ezSQL的核心文件include_once "ez_sql_core php";// 包含ezSQL具体的数据库文件 这里以mySQL为例include_once "ez_sql_mysql php";// 初始化数据库对象并建立数据库连接$db = new ezSQL_mysql( db_user db_password db_name db_host );?
下面是ezSQL中一些主要函数的应用实例 这些代码均来自于ezSQL的官方帮助文档
实例一
// Select multiple records from the database and print them out $users = $db get_results("SELECT name email FROM users");foreach ( $users as $user ) { // Access data using object syntax echo $user name; echo $user email;}
实例二
// Get one row from the database and print it out $user = $db get_row("SELECT name email FROM users WHERE id = ");echo $user name;echo $user email;
实例三
// Get one variable from the database and print it out $var = $db get_var("SELECT count(*) FROM users");echo $var;
实例四
// Insert into the database$db query("INSERT INTO users (id name email) VALUES (NULL justin jv@foo )");
实例五
// Update the database$db query("UPDATE users SET name = Justin WHERE id = )");
实例六
// Display last query and all associated results$db debug();
实例七
// Display the structure and contents of any result(s) or any variable$results = $db get_results("SELECT name email FROM users");$db vardump($results);
实例八
// Get one column (based on column index) and print it out $names = $db get_col("SELECT name email FROM users" )foreach ( $names as $name ) { echo $name;}
实例九
// Same as above ‘but quicker’foreach ( $db get_col("SELECT name email FROM users" ) as $name ) { echo $name;}
实例十
lishixinzhi/Article/program/PHP/201311/21297
搭建好php开发环境,这个就不多讲了,能找单例模式的应该有一定的php基础
2
新建一个database.php文件存放数据库信息
?php
$db = array(
'host'='localhost',//地址
'user'='root',//数据库用户名
'password'='root',//数据库密码
'database'='ceshi',//数据库名
)
?
3
新建Mysql.class.php编写数据库连接类操作类添加需要的属性和构造方法
构造函数加载数据库配置文件连接数据库
?php
class db {
public $conn;
public static $sql;
public static $instance=null;
private function __construct(){
require_once('database.php');
$this-conn = mysqli_connect($db['host'],$db['user'],$db['password']);
if(!mysqli_select_db($this-conn,$db['database'])){
echo "失败";
};
mysqli_query($this-conn,'set names utf8');
}
}
?这样试试吧如果你对php这类有兴趣的话,可以和我一样在后盾人经常看看教材,自己多看几遍,慢慢的以后就明白了,希望能帮到你,给个采纳吧谢谢
我也刚刚学PHP,正在研究中,虽然你只给10分........
首先,将代码保存到一个文件,如:mysql.class.php
其次,在一个常用的文件里调用:比如头部文件header.php,因为我放在根目录所以用下面方式导入其他文件:
require dirname(__FILE__) . 'include/config.php';
//导入类文件
require dirname(__FILE__) . 'include/mysql.class.php';
//定义一个类及初始化数据库类
$db = new mysql($db_host, $db_user, $db_pass, $db_name);
$db_host = $db_user = $db_pass = $db_name = NULL;
然后,在test.php文件调用:
require_once dirname(__FILE__) . '/header.php';
使用方法:
$sql = "读取表";
$res = $db-query($sql);
$info = array();//定义数组
while($row=$db-fetchRow($res))
{
$arr['id'] = $row['id'];
$arr['title'] = $row['title'];
$info[] = $arr;
}
可以在显示的地方用:
foreach($info as $i)
{
echo $i['title']."br /";
}
或是直接使用while
还用另一种调用方式:
$here_area = $db-getRow("select areaid,areaname from {$table}area where areaid='$areaid'");
$here[] = array('name'=$here_area['areaname'],'id'=$here_area['areaid']);
测试通过,因为我正在使用.....................................
config.php代码:
?php
$db_host = "localhost";
$db_name = "test";
$db_user = "root";
$db_pass = "";
$table = "mini_";
$charset = "gb2312";
$dbcharset = "gbk";
?
mysql.class.php代码:
?php
class mysql
{
var $link = NULL;
//自动执行__construct php5类构建方法,如果PHP4和PHP5同时使用会自动使用PHP5的方法
function __construct($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $quiet = 0)
{
//自动执行时调用mysql函数
$this-mysql($dbhost, $dbuser, $dbpw, $dbname, $pconnect, $quiet);
}
//php4类构建方法,如果没有 __construct 就自动执行此功能
function mysql($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $quiet = 0)
{
if ($quiet)
{
$this-connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, $quiet);
}
else
{
$this-settings = array(
'dbhost' = $dbhost,
'dbuser' = $dbuser,
'dbpw' = $dbpw,
'dbname' = $dbname,
'charset' = $charset,
'pconnect' = $pconnect
);
}
}
function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $quiet = 0)
{
global $dbcharset;
if ($pconnect)
{
if (!($this-link = @mysql_pconnect($dbhost, $dbuser, $dbpw)))
{
if (!$quiet)
{
$this-ErrorMsg("Can't pConnect MySQL Server($dbhost)!");
}
return false;
}
}
else
{
if (PHP_VERSION = '4.2')
{
$this-link = @mysql_connect($dbhost, $dbuser, $dbpw, true);
}
else
{
$this-link = @mysql_connect($dbhost, $dbuser, $dbpw);
mt_srand((double)microtime() * 1000000);
}
if (!$this-link)
{
if (!$quiet)
{
$this-ErrorMsg("Can't Connect MySQL Server($dbhost)!");
}
return false;
}
}
$this-dbhash = md5($this-root_path . $dbhost . $dbuser . $dbpw . $dbname);
$this-version = mysql_get_server_info($this-link);
if ($this-version '4.1')
{
if ($dbcharset != 'latin1')
{
mysql_query("SET character_set_connection=$dbcharset, character_set_results=$dbcharset, character_set_client=binary", $this-link);
}
if ($this-version '5.0.1')
{
mysql_query("SET sql_mode=''", $this-link);
}
}
if ($dbname)
{
if (mysql_select_db($dbname, $this-link) === false )
{
if (!$quiet)
{
$this-ErrorMsg("Can't select MySQL database($dbname)!");
}
return false;
}
else
{
return true;
}
}
else
{
return true;
}
}
function query($sql, $type = '')
{
if ($this-link === NULL)
{
$this-connect($this-settings['dbhost'], $this-settings['dbuser'], $this-settings['dbpw'], $this-settings['dbname'], $this-settings['charset'], $this-settings['pconnect']);
$this-settings = array();
}
if ($this-queryCount++ = 99)
{
$this-queryLog[] = $sql;
}
if ($this-queryTime == '')
{
if (PHP_VERSION = '5.0.0')
{
$this-queryTime = microtime(true);
}
else
{
$this-queryTime = microtime();
}
}
if (!($query = mysql_query($sql, $this-link)) $type != 'SILENT')
{
$this-error_message[]['message'] = 'MySQL Query Error';
$this-error_message[]['sql'] = $sql;
$this-error_message[]['error'] = mysql_error($this-link);
$this-error_message[]['errno'] = mysql_errno($this-link);
$this-ErrorMsg();
return false;
}
return $query;
}
function affected_rows()
{
return mysql_affected_rows($this-link);
}
function num_fields($query)
{
return mysql_num_fields($query);
}
function error()
{
return mysql_error($this-link);
}
function errno()
{
return mysql_errno($this-link);
}
function num_rows($query)
{
return mysql_num_rows($query);
}
function insert_id()
{
return mysql_insert_id($this-link);
}
function fetchRow($query)
{
return mysql_fetch_assoc($query);
}
function fetcharray($query)
{
return mysql_fetch_array($query);
}
function version()
{
return $this-version;
}
function close()
{
return mysql_close($this-link);
}
function ErrorMsg($message = '', $sql = '')
{
if ($message)
{
echo "$message\n\n";
}
else
{
echo "bMySQL server error report:";
print_r($this-error_message);
}
exit;
}
function getCol($sql)
{
$res = $this-query($sql);
if ($res !== false)
{
$arr = array();
while ($row = mysql_fetch_row($res))
{
$arr[] = $row[0];
}
return $arr;
}
else
{
return false;
}
}
function getOne($sql, $limited = false)
{
if ($limited == true)
{
$sql = trim($sql . ' LIMIT 1');
}
$res = $this-query($sql);
if ($res !== false)
{
$row = mysql_fetch_row($res);
if ($row !== false)
{
return $row[0];
}
else
{
return '';
}
}
else
{
return false;
}
}
function getAll($sql)
{
$res = $this-query($sql);
if ($res !== false)
{
$arr = array();
while ($row = mysql_fetch_assoc($res))
{
$arr[] = $row;
}
return $arr;
}
else
{
return false;
}
}
//使用: getRow($sql,true) 如果有true那值是 limit 1,读取一条信息
function getRow($sql, $limited = false)
{
if ($limited == true)
{
$sql = trim($sql . ' LIMIT 1');
}
$res = $this-query($sql);
if ($res !== false)
{
return mysql_fetch_assoc($res);
}
else
{
return false;
}
}
}
?
//链接数据库
$db=mysql_connect("localhost", "root","123456");
$sqlname="database";
mysql_select_db($sqlname,$db);
session_start();
mysql_query("SET NAMES 'utf8'",$db);
?
?
//创建结果集
$sql = "SELECT * FROM kecheng";
$result = mysql_query($sql);
$rs= mysql_fetch_array($result);
?
?
//修改数据
$sql = "UPDATE news SET title='1111' where news_id=1";
$result = mysql_query($sql);
?
?
//删除数据
$sql = "DELETE from news where news_id=1";
$result = mysql_query($sql);
?
?
//添加数据
$sql = "INSERT INTO news (title,fenshu) VALUES ('a',1)"
$result = mysql_query($sql);
?
贴出自己写的一个数据库类吧。
class.php
?php
class Db_Base
{
var $db_host;
var $db_name;
var $db_user;
var $password;
var $linkID;
var $sql;
var $result;
//构造函数,其中dbname,dbuser,dbpsd填自己的数据名,用户名,密码
function __construct()
{
$this-linkID = 0;
$this-sql = "";
$this-db_name="dbname";
$this-db_user="dbuser";
$this-password="dbpsd";
$this-db_host="localhost";
//调用数据库链接函数
$this-Db_Connect();
}
function Db_Base()
{
$this-__construct();
}
//链接数据库函数
function Db_Connect()
{
$this-linkID=@mysql_connect($this-db_host,$this-db_user,$this-password);
if(!$this-linkID)
{
DisplayError("连接失败");exit();
}
$this-Db_Select();
return true;
}
//选择数据库函数
function Db_Select()
{
$select=mysql_select_db($this-db_name);
if(!$select)
{
DisplayError("选择数据库失败");exit();
}
}
//sql语句操作
function Db_Query($sql)
{
if($sql) $this-sql=$sql;
if(!($this-result=mysql_query($this-sql,$this-linkID)))
{
DisplayError("SQL无效");
return 0;
}
else
{
return $this-result;
}
}
//sql语句的结果用数组返回
function Db_Fetch_Array()
{
return mysql_fetch_array($this-result);
}
//select语句 影响的行数
function Db_Num_Rows()
{
return mysql_num_rows($this-result);
}
//INSERT、UPDATE 、DELETE 的影响行数
function Db_Affected_Rows()
{
return mysql_affected_rows();
}
//清除记录
function Db_Free_Result()
{
if(!is_array($this-result)) return "";
foreach($this-result as $kk = $vv)
{
if($vv) @mysql_free_result($vv);
}
}
?
其中DisplayError 为外部定义函数
应用的话,如下操作
example.php
?php
require_once(class.php);
$news=new Db_Base();//构建对象
$sql="select * from tableA limit 0,100";//初始化sql语句
$news-Db_Query($sql);//向数据库插入sql语句
while($re=$news-Db_Fetch_Array())//循环输出sql结果集
{
echo $re[keyA];
echo $re[keyB];//keyA,keyB为你数据表的键
}
echo $news-Db_Num_Rows();//输出本次sql语句影响的行数,假若sql语句是update,delete,insert的,则用 Db_Affected_Rows() 函数
$news-Db_Free_Result();//清空查询结果
?
好吧,百度的这个表单输入框真烂,不能调格式,代码格式可能很乱,就麻烦楼主慢慢看吧。若有问题再发消息给我百度号。
直接调用就行了,不过可能你需要引用文件,以下是例子
//文件conn.php,用于连接数据库
class DB_Conn {
}
//文件 db.php, 用于数据库操作,这个类必然需要使用数据库连接对象,因此引用conn.php
require_once conn.php;
class DB {
}
//文件user.php
require_once 'db.php';
class User {
public function getUserById($id) {
$conn = new Db_Conn();
$db = new Db();
}
}
以上只是示意,如果文件不在一个目录下记得修改路径。而且,一般来说数据库对象应该包含连接数据库和数据操作的全部功能,不需要分别写在两个类里面。我觉得你对面向对象的理解还很浅薄,需要进一步累积经验。