本身這就是一個(gè)自定義函數(shù),數(shù)據(jù)需要插入的話需要自己構(gòu)造sql語句然后通過mysql_query將函數(shù)返回的值寫入數(shù)據(jù)庫。
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了臨淄免費(fèi)建站歡迎大家使用!
想直接讓數(shù)據(jù)庫調(diào)用PHP的自定義函數(shù)是不現(xiàn)實(shí)的!
建立數(shù)據(jù)表,得是你在cmd窗口或者phpmyadmin、navicat
for
mysql這類終端軟件里進(jìn)行操作。建立數(shù)據(jù)表的指令是create
table
xxx
();
連接數(shù)據(jù)庫使用php封裝好的一個(gè)函數(shù)mysql_connect();
例如:
mysql_connect('127.0.0.1','root','root');
這樣的語句來連接,因?yàn)檫B接數(shù)據(jù)庫會(huì)生成連接標(biāo)識(shí)資源,你把這個(gè)資源賦給一個(gè)新變量
$active_connection_sort
=
mysql_connect('127.0.0.1','root','root');
這樣你拿著新變量去玩別的也好下手。
括號(hào)中間都是參數(shù),第一個(gè)是連接地址,比如localhost,但我個(gè)人建議還是127.0.0.1省得還得來一步解析,第二個(gè)參數(shù)是用戶名,第三個(gè)參數(shù)是密碼,都用英文單括號(hào)括上。參數(shù)和參數(shù)之間用英文逗號(hào)間隔起來。
用框架做久了這個(gè)東西都容易忘,我也是憑記憶寫的,你試試看這個(gè)能不能過關(guān)。
復(fù)制代碼
代碼如下:
?php
/*
MYSQL
數(shù)據(jù)庫訪問封裝類
MYSQL
數(shù)據(jù)訪問方式,php4支持以mysql_開頭的過程訪問方式,php5開始支持以mysqli_開頭的過程和mysqli面向?qū)ο?/p>
訪問方式,本封裝類以mysql_封裝
數(shù)據(jù)訪問的一般流程:
1,連接數(shù)據(jù)庫
mysql_connect
or
mysql_pconnect
2,選擇數(shù)據(jù)庫
mysql_select_db
3,執(zhí)行SQL查詢
mysql_query
4,處理返回的數(shù)據(jù)
mysql_fetch_array
mysql_num_rows
mysql_fetch_assoc
mysql_fetch_row
etc
*/
class
db_mysql
{
var
$querynum
=
;
//當(dāng)前頁面進(jìn)程查詢數(shù)據(jù)庫的次數(shù)
var
$dblink
;
//數(shù)據(jù)庫連接資源
//鏈接數(shù)據(jù)庫
function
connect($dbhost,$dbuser,$dbpw,$dbname='',$dbcharset='utf-8',$pconnect=0
,
$halt=true)
{
$func
=
empty($pconnect)
?
'mysql_connect'
:
'mysql_pconnect'
;
$this-dblink
=
@$func($dbhost,$dbuser,$dbpw)
;
if
($halt
!$this-dblink)
{
$this-halt("無法鏈接數(shù)據(jù)庫!");
}
//設(shè)置查詢字符集
mysql_query("SET
character_set_connection={$dbcharset},character_set_results={$dbcharset},character_set_client=binary",$this-dblink)
;
//選擇數(shù)據(jù)庫
$dbname
@mysql_select_db($dbname,$this-dblink)
;
}
//選擇數(shù)據(jù)庫
function
select_db($dbname)
{
return
mysql_select_db($dbname,$this-dblink);
}
//執(zhí)行SQL查詢
function
query($sql)
{
$this-querynum++
;
return
mysql_query($sql,$this-dblink)
;
}
//返回最近一次與連接句柄關(guān)聯(lián)的INSERT,UPDATE
或DELETE
查詢所影響的記錄行數(shù)
function
affected_rows()
{
return
mysql_affected_rows($this-dblink)
;
}
//取得結(jié)果集中行的數(shù)目,只對(duì)select查詢的結(jié)果集有效
function
num_rows($result)
{
return
mysql_num_rows($result)
;
}
//獲得單格的查詢結(jié)果
function
result($result,$row=0)
{
return
mysql_result($result,$row)
;
}
//取得上一步
INSERT
操作產(chǎn)生的
ID,只對(duì)表有AUTO_INCREMENT
ID的操作有效
function
insert_id()
{
return
($id
=
mysql_insert_id($this-dblink))
=
?
$id
:
$this-result($this-query("SELECT
last_insert_id()"),
0);
}
//從結(jié)果集提取當(dāng)前行,以數(shù)字為key表示的關(guān)聯(lián)數(shù)組形式返回
function
fetch_row($result)
{
return
mysql_fetch_row($result)
;
}
//從結(jié)果集提取當(dāng)前行,以字段名為key表示的關(guān)聯(lián)數(shù)組形式返回
function
fetch_assoc($result)
{
return
mysql_fetch_assoc($result);
}
//從結(jié)果集提取當(dāng)前行,以字段名和數(shù)字為key表示的關(guān)聯(lián)數(shù)組形式返回
function
fetch_array($result)
{
return
mysql_fetch_array($result);
}
//關(guān)閉鏈接
function
close()
{
return
mysql_close($this-dblink)
;
}
//輸出簡單的錯(cuò)誤html提示信息并終止程序
function
halt($msg)
{
$message
=
"html\nhead\n"
;
$message
.=
"meta
content='text/html;charset=gb2312'\n"
;
$message
.=
"/head\n"
;
$message
.=
"body\n"
;
$message
.=
"數(shù)據(jù)庫出錯(cuò):".htmlspecialchars($msg)."\n"
;
$message
.=
"/body\n"
;
$message
.=
"/html"
;
echo
$message
;
exit
;
}
}
?
類文件mysql.class.php:
?php
class?Mysql{
//數(shù)據(jù)庫連接返回值
private?$conn;
/**
*?[構(gòu)造函數(shù),返回值給$conn]
*?@param?[string]?$hostname?[主機(jī)名]
*?@param?[string]?$username[用戶名]
*?@param?[string]?$password[密碼]
*?@param?[string]?$dbname[數(shù)據(jù)庫名]
*?@param?[string]?$charset[字符集]
*?@return?[null]
*/
function?__construct($hostname,$username,$password,$dbname,$charset='utf8'){
$config?=?@mysql_connect($hostname,$username,$password);
if(!$config){
echo?'連接失敗,請聯(lián)系管理員';
exit;
}
$this-conn?=?$config;
$res?=?mysql_select_db($dbname);
if(!$res){
echo?'連接失敗,請聯(lián)系管理員';
exit;
}
mysql_set_charset($charset);
}
function?__destruct(){
mysql_close();
}
/**
*?[getAll?獲取所有信息]
*?@param?[string]?$sql?[sql語句]
*?@return?[array]?[返回二維數(shù)組]
*/
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?獲取單條數(shù)據(jù)]
*?@param?[string]?$sql?[sql語句]
*?@return?[array]?[返回一維數(shù)組]
*/
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?獲取單條數(shù)據(jù)]
*?@param?[string]?$table?[表名]
*?@param?[string]?$data?[由字段名當(dāng)鍵,屬性當(dāng)鍵值的一維數(shù)組]
*?@return?[type]?[返回false或者插入數(shù)據(jù)的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?更新數(shù)據(jù)庫]
*?@param?[string]?$table?[表名]
*?@param?[array]?$data?[更新的數(shù)據(jù),由字段名當(dāng)鍵,屬性當(dāng)鍵值的一維數(shù)組]
*?@param?[string]?$where?[條件,‘字段名’=‘字段屬性’]
*?@return?[type]?[更新成功返回影響的行數(shù),更新失敗返回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?刪除數(shù)據(jù)]
*?@param?[string]?$table?[表名]
*?@param?[string]?$where?[條件,‘字段名’=‘字段屬性’]
*?@return?[type]?[成功返回影響的行數(shù),失敗返回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
//包含數(shù)據(jù)庫操作類文件
include?'mysql.class.php';
//設(shè)置傳入?yún)?shù)
$hostname='localhost';
$username='root';
$password='123456';
$dbname='aisi';
$charset?=?'utf8';
//實(shí)例化對(duì)象
$db?=?new?Mysql($hostname,$username,$password,$dbname);
//獲取一條數(shù)據(jù)
$sql?=?"SELECT?count(as_article_id)?as?count?FROM?as_article?where?as_article_type_id=1";
$count?=?$db-getOne($sql);
//獲取多條數(shù)據(jù)
$sql?=?"SELECT?*?FROM?as_article?where?as_article_type_id=1?order?by?as_article_addtime?desc?limit?$start,$limit";
$service?=?$db-getAll($sql);
//插入數(shù)據(jù)
$arr?=?array(
'as_article_title'='數(shù)據(jù)庫操作類',
'as_article_author'='rex',
);
$res?=?$db-insert('as_article',$arr);
//更新數(shù)據(jù)
$arr?=?array(
'as_article_title'='實(shí)例化對(duì)象',
'as_article_author'='Lee',
);
$where?=?"as_article_id=1";
$res?=?$db-update('as_article',$arr,$where);
//刪除數(shù)據(jù)
$where?=?"as_article_id=1";
$res?=?$db-del('as_article',$where);
?