貼出自己寫的一個(gè)數(shù)據(jù)庫類吧。
宣恩網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,宣恩網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為宣恩上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的宣恩做網(wǎng)站的公司定做!
class.php
?php
class Db_Base
{
var $db_host;
var $db_name;
var $db_user;
var $password;
var $linkID;
var $sql;
var $result;
//構(gòu)造函數(shù),其中dbname,dbuser,dbpsd填自己的數(shù)據(jù)名,用戶名,密碼
function __construct()
{
$this-linkID = 0;
$this-sql = "";
$this-db_name="dbname";
$this-db_user="dbuser";
$this-password="dbpsd";
$this-db_host="localhost";
//調(diào)用數(shù)據(jù)庫鏈接函數(shù)
$this-Db_Connect();
}
function Db_Base()
{
$this-__construct();
}
//鏈接數(shù)據(jù)庫函數(shù)
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;
}
//選擇數(shù)據(jù)庫函數(shù)
function Db_Select()
{
$select=mysql_select_db($this-db_name);
if(!$select)
{
DisplayError("選擇數(shù)據(jù)庫失敗");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語句的結(jié)果用數(shù)組返回
function Db_Fetch_Array()
{
return mysql_fetch_array($this-result);
}
//select語句 影響的行數(shù)
function Db_Num_Rows()
{
return mysql_num_rows($this-result);
}
//INSERT、UPDATE 、DELETE 的影響行數(shù)
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 為外部定義函數(shù)
應(yīng)用的話,如下操作
example.php
?php
require_once(class.php);
$news=new Db_Base();//構(gòu)建對象
$sql="select * from tableA limit 0,100";//初始化sql語句
$news-Db_Query($sql);//向數(shù)據(jù)庫插入sql語句
while($re=$news-Db_Fetch_Array())//循環(huán)輸出sql結(jié)果集
{
echo $re[keyA];
echo $re[keyB];//keyA,keyB為你數(shù)據(jù)表的鍵
}
echo $news-Db_Num_Rows();//輸出本次sql語句影響的行數(shù),假若sql語句是update,delete,insert的,則用 Db_Affected_Rows() 函數(shù)
$news-Db_Free_Result();//清空查詢結(jié)果
?
好吧,百度的這個(gè)表單輸入框真爛,不能調(diào)格式,代碼格式可能很亂,就麻煩樓主慢慢看吧。若有問題再發(fā)消息給我百度號。
一、PHP操作MySql數(shù)據(jù)庫
新增數(shù)據(jù)
?php
$query
=
"INSERT
INTO
grade
(name,email,point,regdate)
VALUE
('
李三','yc60.com@gmail.com',,NOW())"
;
@mysql_query($query)
or
die(
'添加數(shù)據(jù)出錯(cuò):'
.mysql_error());
?
修改數(shù)據(jù)
?php
$query
=
"UPDATE
grade
SET
name='小可愛'
WHERE
id=6"
;
@mysql_query($query)
or
die(
'修改出錯(cuò):'
.mysql_error());
?
刪除數(shù)據(jù)
?php
$query
=
"DELETE
FROM
grade
WHERE
id=6";
@mysql_query($query)
or
die(
'刪除錯(cuò)誤:'
.mysql_error());
?
顯示數(shù)據(jù)
?php
$query
=
"SELECT
id,name,email,point
FROM
grade";
$result
=
@mysql_query($query)
or
die(
'查詢語句出錯(cuò):'
.mysql_error());
while
(!!
$row
=
mysql_fetch_array($result))
{
echo
$row[
'id'
].
'----'
.$row['name'
].'----'
.$row
['email'
].
'----'
.$row['point'
];
echo
'br
/
';
}
?
二、其他常用函數(shù)
mysql_f
etch_row()
:從結(jié)果集中取得一行作為枚舉數(shù)組
mysql_f
etch_assoc()
:
從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組
mysql_f
etch_array()
:
從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有
mysql_f
etch_lengths
()
:
取得結(jié)果集中每個(gè)輸出的長度
mysql_f
ield_name():
取得結(jié)果中指定字段的字段名
mysql_num_rows():
取得結(jié)果集中行的數(shù)目
mysql_num_f
ields():取得結(jié)果集中字段的數(shù)目
mysql_get_client_inf
o()
:
取得
MySQL
客戶端信息
mysql_get_host_info():
取得
MySQL
主機(jī)信息
mysql_get_proto_info():
取得
MySQL
協(xié)議信息
mysql_get_server_inf
o()
:
取得
MySQL
服務(wù)器信息
1:可以在自己在文本里面寫好相關(guān)的建表語句,然后用phpmyadmin之類的工具導(dǎo)入到你的數(shù)據(jù)庫,然后在通過程序連接數(shù)據(jù)庫,插入,修改,刪除,查詢。一般開發(fā)流程都是在程序開發(fā)之前就需要規(guī)劃數(shù)據(jù)表的結(jié)構(gòu)的。(個(gè)人和企業(yè)自身用這樣就可以了)
2:就像你說的那樣創(chuàng)建一個(gè)文件專門用來創(chuàng)建數(shù)據(jù)庫和表,也就是程序的安裝模塊,當(dāng)然也是需要在文本中寫相關(guān)的sql語句的,之后通過程序?qū)氲綌?shù)據(jù)庫去,創(chuàng)建好了之后可以把他刪除。(這種一般給別人開發(fā)的時(shí)候用,像那些開源的cms都是這樣的)
原生SQL查詢有 query() 和 execute() 兩個(gè)方法:
query():用于 SQL 查詢操作,并返回符合查詢條件的數(shù)據(jù)集
execute():更新和寫入數(shù)據(jù)的 SQL 操作,返回影響的記錄數(shù)
query()
query() 方法是用于 SQL 查詢操作,和select()方法一樣返回符合查詢條件的數(shù)據(jù)集。
例子:
public function read(){
// 實(shí)例化一個(gè)空模型,沒有對應(yīng)任何數(shù)據(jù)表
$Dao = M();
//或者使用 $Dao = new Model();
$list = $Dao-query("select * from user where uid5");
if($list){
$this-assign('list', $list );
$this-display();
} else {
$this-error($Dao-getError());
}
}
對于 query() 方法返回的數(shù)據(jù)集,跟 select() 一樣,可以在模板里直接循環(huán)輸出。
execute()
execute() 方法用于更新和寫入數(shù)據(jù)的 SQL 操作(注:非查詢操作,無返回?cái)?shù)據(jù)集),返回影響的記錄數(shù)。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 實(shí)例化一個(gè)空模型,沒有對應(yīng)任何數(shù)據(jù)表
$Dao = M();
//或者使用 $Dao = new Model();
$num = $Dao-execute("update user set email = '12345@xxx.com' where uid=3");
if($num){
echo '更新 ',$num,' 條記錄。';
}else{
echo '無記錄更新';
}
}
如果查詢比較復(fù)雜或一些特殊的數(shù)據(jù)操作不能通過 ThinkPHP 內(nèi)置的 ORM 和 ActiveRecord 模式實(shí)現(xiàn)時(shí),就可以通過直接使用原生 SQL 查詢來實(shí)現(xiàn)。
注意:以上都是 user 沒有表前綴的例子,在查詢語句中,查詢的表應(yīng)該寫實(shí)際的表名字(包括前綴)。