扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
?php
创新互联公司专注于崂山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供崂山营销型网站建设,崂山网站制作、崂山网页设计、崂山网站官网定制、微信小程序开发服务,打造崂山网络公司原创品牌,更为您提供崂山网站排名全网营销落地服务。
class MySQL{
private $host; //服务器地址
private $name; //登录账号
private $pwd; //登录密码
private $dBase; //数据库名称
private $conn; //数据库链接资源
private $result; //结果集
private $msg; //返回结果
private $fields; //返回字段
private $fieldsNum; //返回字段数
private $rowsNum; //返回结果数
private $rowsRst; //返回单条记录的字段数组
private $filesArray = array(); //返回字段数组
private $rowsArray = array(); //返回结果数组
private $charset='utf8'; //设置操作的字符集
private $query_count=0; //查询结果次数
static private $_instance; //存储对象
//初始化类
private function __construct($host='',$name='',$pwd='',$dBase=''){
if($host != '') $this-host = $host;
if($name != '') $this-name = $name;
if($pwd != '') $this-pwd = $pwd;
if($dBase != '') $this-dBase = $dBase;
$this-init_conn();
}
//防止被克隆
private function __clone(){}
public static function getInstance($host='',$name='',$pwd='',$dBase=''){
if(FALSE == (self::$_instance instanceof self)){
self::$_instance = new self($host,$name,$pwd,$dBase);
}
return self::$_instance;
}
public function __set($name,$value){
$this-$name=$value;
}
public function __get($name){
return $this-$name;
}
//链接数据库
function init_conn(){
$this-conn=@mysql_connect($this-host,$this-name,$this-pwd) or die('connect db fail !');
@mysql_select_db($this-dBase,$this-conn) or die('select db fail !');
mysql_query("set names ".$this-charset);
}
//查询结果
function mysql_query_rst($sql){
if($this-conn == '') $this-init_conn();
$this-result = @mysql_query($sql,$this-conn);
$this-query_count++;
}
//取得字段数
function getFieldsNum($sql){
$this-mysql_query_rst($sql);
$this-fieldsNum = @mysql_num_fields($this-result);
}
//取得查询结果数
function getRowsNum($sql){
$this-mysql_query_rst($sql);
if(mysql_errno() == 0){
return @mysql_num_rows($this-result);
}else{
return '';
}
}
//取得记录数组(单条记录)
function getRowsRst($sql,$type=MYSQL_BOTH){
$this-mysql_query_rst($sql);
if(empty($this-result)) return '';
if(mysql_error() == 0){
$this-rowsRst = mysql_fetch_array($this-result,$type);
return $this-rowsRst;
}else{
return '';
}
}
//取得记录数组(多条记录)
function getRowsArray($sql,$type=MYSQL_BOTH){
!empty($this-rowsArray) ? $this-rowsArray=array() : '';
$this-mysql_query_rst($sql);
if(mysql_errno() == 0){
while($row = mysql_fetch_array($this-result,$type)) {
$this-rowsArray[] = $row;
}
return $this-rowsArray;
}else{
return '';
}
}
//更新、删除、添加记录数
function uidRst($sql){
if($this-conn == ''){
$this-init_conn();
}
@mysql_query($sql);
$this-rowsNum = @mysql_affected_rows();
if(mysql_errno() == 0){
return $this-rowsNum;
}else{
return '';
}
}
//返回最近插入的一条数据库的id值
function returnRstId($sql){
if($this-conn == ''){
$this-init_conn();
}
@mysql_query($sql);
if(mysql_errno() == 0){
return mysql_insert_id();
}else{
return '';
}
}
//获取对应的字段值
function getFields($sql,$fields){
$this-mysql_query_rst($sql);
if(mysql_errno() == 0){
if(mysql_num_rows($this-result) 0){
$tmpfld = @mysql_fetch_row($this-result);
$this-fields = $tmpfld[$fields];
}
return $this-fields;
}else{
return '';
}
}
//错误信息
function msg_error(){
if(mysql_errno() != 0) {
$this-msg = mysql_error();
}
return $this-msg;
}
//释放结果集
function close_rst(){
mysql_free_result($this-result);
$this-msg = '';
$this-fieldsNum = 0;
$this-rowsNum = 0;
$this-filesArray = '';
$this-rowsArray = '';
}
//关闭数据库
function close_conn(){
$this-close_rst();
mysql_close($this-conn);
$this-conn = '';
}
//取得数据库版本
function db_version() {
return mysql_get_server_info();
}
}
建立数据库:
步骤:核心-频道模式-内容模型管理,添加一个内容模块(手动添加你需要的数据字段)然后建立.demo.php文件(demo自己命名),写一个数据入库操作(如果你的网站要处理大数据量的访问的话,建议封装函数)。其中(数据主表:dede_archives
数据索引:dede_arctiny)和你添加的新表对应字段才能进行入库操作,但织梦的各个版本不同,字段也不同,需要楼主自己考虑,数据入库之后,就好办了。
添加
核心-网站栏目管理,添加你的需求栏目,这样就可以在织梦后台读取你的订单了。
如果想前台读取的话,我想这个就比较简单了,你自己可以解决的。
不懂的话,请再追问
本身这就是一个自定义函数,数据需要插入的话需要自己构造sql语句然后通过mysql_query将函数返回的值写入数据库。
想直接让数据库调用PHP的自定义函数是不现实的!
类文件mysql.class.php:
?php
class Mysql{
//数据库连接返回值
private $conn;
/**
* [构造函数,返回值给$conn]
* @param [string] $hostname [主机名]
* @param [string] $username[用户名]
* @param [string] $password[密码]
* @param [string] $dbname[数据库名]
* @param [string] $charset[字符集]
* @return [null]
*/
function __construct($hostname,$username,$password,$dbname,$charset='utf8'){
$config = @mysql_connect($hostname,$username,$password);
if(!$config){
echo '连接失败,请联系管理员';
exit;
}
$this-conn = $config;
$res = mysql_select_db($dbname);
if(!$res){
echo '连接失败,请联系管理员';
exit;
}
mysql_set_charset($charset);
}
function __destruct(){
mysql_close();
}
/**
* [getAll 获取所有信息]
* @param [string] $sql [sql语句]
* @return [array] [返回二维数组]
*/
function getAll($sql){
$result = mysql_query($sql,$this-conn);
$data = array();
if($result mysql_num_rows($result)0){
while($row = mysql_fetch_assoc($result)){
$data[] = $row;
}
}
return $data;
}
/**
* [getOne 获取单条数据]
* @param [string] $sql [sql语句]
* @return [array] [返回一维数组]
*/
function getOne($sql){
$result = mysql_query($sql,$this-conn);
$data = array();
if($result mysql_num_rows($result)0){
$data = mysql_fetch_assoc($result);
}
return $data;
}
/**
* [getOne 获取单条数据]
* @param [string] $table [表名]
* @param [string] $data [由字段名当键,属性当键值的一维数组]
* @return [type] [返回false或者插入数据的id]
*/
function insert($table,$data){
$str = '';
$str .="INSERT INTO `$table` ";
$str .="(`".implode("`,`",array_keys($data))."`) ";
$str .=" VALUES ";
$str .= "('".implode("','",$data)."')";
$res = mysql_query($str,$this-conn);
if($res mysql_affected_rows()0){
return mysql_insert_id();
}else{
return false;
}
}
/**
* [update 更新数据库]
* @param [string] $table [表名]
* @param [array] $data [更新的数据,由字段名当键,属性当键值的一维数组]
* @param [string] $where [条件,‘字段名’=‘字段属性’]
* @return [type] [更新成功返回影响的行数,更新失败返回false]
*/
function update($table,$data,$where){
$sql = 'UPDATE '.$table.' SET ';
foreach($data as $key = $value){
$sql .= "`{$key}`='{$value}',";
}
$sql = rtrim($sql,',');
$sql .= " WHERE $where";
$res = mysql_query($sql,$this-conn);
if($res mysql_affected_rows()){
return mysql_affected_rows();
}else{
return false;
}
}
/**
* [delete 删除数据]
* @param [string] $table [表名]
* @param [string] $where [条件,‘字段名’=‘字段属性’]
* @return [type] [成功返回影响的行数,失败返回false]
*/
function del($table,$where){
$sql = "DELETE FROM `{$table}` WHERE {$where}";
$res = mysql_query($sql,$this-conn);
if($res mysql_affected_rows()){
return mysql_affected_rows();
}else{
return false;
}
}
}
?
使用案例:
?php
//包含数据库操作类文件
include 'mysql.class.php';
//设置传入参数
$hostname='localhost';
$username='root';
$password='123456';
$dbname='aisi';
$charset = 'utf8';
//实例化对象
$db = new Mysql($hostname,$username,$password,$dbname);
//获取一条数据
$sql = "SELECT count(as_article_id) as count FROM as_article where as_article_type_id=1";
$count = $db-getOne($sql);
//获取多条数据
$sql = "SELECT * FROM as_article where as_article_type_id=1 order by as_article_addtime desc limit $start,$limit";
$service = $db-getAll($sql);
//插入数据
$arr = array(
'as_article_title'='数据库操作类',
'as_article_author'='rex',
);
$res = $db-insert('as_article',$arr);
//更新数据
$arr = array(
'as_article_title'='实例化对象',
'as_article_author'='Lee',
);
$where = "as_article_id=1";
$res = $db-update('as_article',$arr,$where);
//删除数据
$where = "as_article_id=1";
$res = $db-del('as_article',$where);
?
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流