當前位置:首頁 » 編程語言 » php數據操作類

php數據操作類

發布時間: 2022-09-08 12:30:12

php資料庫操作類中的$sql語句是什麼語句

這個不用實例化

你只要實例化了資料庫類就行了

我讀了你這個類,$sql在裡面應該是SQL語句的意思,$sql只是類裡面的形式參數。
實際你只要傳遞一個值進去就行了。

比如:
<?php
$db=new mysql('localhost','root','','test','')
//實例化mysql類。第五參數我看不懂,可能這類有點小問題的
$db->query("select * from test");
//訪問query函數,參數select * from test
.....
?>
這個類不好。我給你一個把:
<?php
class mysql{

private $db_host; //資料庫主機
private $db_user; //資料庫用戶名
private $db_pwd; //資料庫用戶名密碼
private $db_database; //資料庫名
private $conn; //資料庫連接標識;
private $result; //執行query命令的結果資源標識
private $sql; //sql執行語句
private $row; //返回的條目數
private $coding; //資料庫編碼,GBK,UTF8,gb2312
private $bulletin = true; //是否開啟錯誤記錄
private $show_error = true; //測試階段,顯示所有錯誤,具有安全隱患,默認關閉
private $is_error = false; //發現錯誤是否立即終止,默認true,建議不啟用,因為當有問題時用戶什麼也看不到是很苦惱的

/*構造函數*/
function __construct($db_host,$db_user,$db_pwd,$db_database,$conn,$coding){
$this->db_host=$db_host;
$this->db_user=$db_user;
$this->db_pwd = $db_pwd;
$this->db_database=$db_database;
$this->conn=$conn;
$this->coding=$coding;
$this->connect();
}

/*資料庫連接*/
function connect()
{
if($this->conn=="pconn"){
//永久鏈接
$this->conn=mysql_pconnect($this->db_host,$this->db_user,$this->db_pwd);
}else{
//即使鏈接
$this->conn=mysql_connect($this->db_host,$this->db_user,$this->db_pwd);
}

if(!mysql_select_db($this->db_database,$this->conn)){
if($this->show_error){
$this->show_error("資料庫不可用:",$this->db_database);
}
}
mysql_query("SET NAMES $this->coding");
}

/*資料庫執行語句,可執行查詢添加修改刪除等任何sql語句*/
function query($sql)
{
if($sql == ""){
$this->show_error("sql語句錯誤:","sql查詢語句為空");}
$this->sql = $sql;

$result = mysql_query($this->sql,$this->conn);

if(!$result){
//調試中使用,sql語句出錯時會自動列印出來
if($this->show_error){
$this->show_error("錯誤sql語句:",$this->sql);
}
}else{
$this->result = $result;
}
return $this->result;
}

/*創建添加新的資料庫*/
function create_database($database_name){
$database=$database_name;
$sqlDatabase = 'create database '.$database;
$this->query($sqlDatabase);
}

/*查詢伺服器所有資料庫*/
//將系統資料庫與用戶資料庫分開,更直觀的顯示?
function show_databases(){
$this->query("show databases");
echo "現有資料庫:".$amount =$this->db_num_rows($rs);
echo "<br />";
$i=1;
while($row = $this->fetch_array($rs)){
echo "$i $row[Database]";
echo "<br />";
$i++;
}
}

//以數組形式返回主機中所有資料庫名
function databases()
{
$rsPtr=mysql_list_dbs($this->conn);
$i=0;
$cnt=mysql_num_rows($rsPtr);
while($i<$cnt)
{
$rs[]=mysql_db_name($rsPtr,$i);
$i++;
}
return $rs;
}

/*查詢資料庫下所有的表*/
function show_tables($database_name){
$this->query("show tables");
echo "現有資料庫:".$amount = $this->db_num_rows($rs);
echo "<br />";
$i=1;
while($row = $this->fetch_array($rs)){
$columnName="Tables_in_".$database_name;
echo "$i $row[$columnName]";
echo "<br />";
$i++;
}
}

/*
mysql_fetch_row() array $row[0],$row[1],$row[2]
mysql_fetch_array() array $row[0] 或 $row[id]
mysql_fetch_assoc() array 用$row->content 欄位大小寫敏感
mysql_fetch_object() object 用$row[id],$row[content] 欄位大小寫敏感
*/

/*取得結果數據*/
function mysql_result_li()
{
return mysql_result($str);
}

/*取得記錄集,獲取數組-索引和關聯,使用$row['content'] */
function fetch_array()
{
return mysql_fetch_array($this->result);
}

//獲取關聯數組,使用$row['欄位名']
public function fetch_assoc()
{
return mysql_fetch_assoc($this->result);
}

//獲取數字索引數組,使用$row[0],$row[1],$row[2]
function fetch_row()
{
return mysql_fetch_row($this->result);
}

//獲取對象數組,使用$row->content
function fetch_Object()
{
return mysql_fetch_object($this->result);
}

//簡化查詢select
function findall($table)
{
$this->query("SELECT * FROM $table");
}

//簡化查詢select
function select($table,$columnName,$condition)
{
if($columnName==""){
$columnName="*";
}

$this->query("SELECT $columnName FROM $table $condition");

}

//簡化刪除del
function delete($table,$condition){
$this->query("DELETE FROM $table WHERE $condition");
}

//簡化插入insert
function insert($table,$columnName,$value){
$this->query("INSERT INTO $table ($columnName) VALUES ($value)");
}

//簡化修改update
function update($table,$mod_content,$condition){
$this->query("UPDATE $table SET $mod_content WHERE $condition");
}

/*取得上一步 INSERT 操作產生的 自動增長的ID*/
function insert_id(){
return mysql_insert_id();
}

//指向確定的一條數據記錄
function db_data_seek($id){
if($id>0){
$id=$id-1;
}
if(!@mysql_data_seek($this->result,$id)){
$this->show_error("sql語句有誤:", "指定的數據為空");
}
return $this->result;
}

// 根據select查詢結果計算結果集條數
function db_num_rows(){
if($this->result==null){

if($this->show_error){
$this->show_error("sql語句錯誤","暫時為空,沒有任何內容!");
}
return -1;
}else{
return mysql_num_rows($this->result);
}
}

// 根據insert,update,delete執行結果取得影響行數
function db_affected_rows(){
return mysql_affected_rows();
}

//輸出顯示sql語句
function show_error($message="",$sql=""){
if(!$sql){
echo "<font color='red'>".$message."</font>";
echo "<br />";
}else{
echo "<fieldset>";
echo "<legend>錯誤信息提示:</legend><br />";
echo "<div style='font-size:14px; clear:both; font-family:Verdana, Arial, Helvetica, sans-serif;'>";
echo "<div style='height:20px; background:#000000; border:1px #000000 solid'>";
echo "<font color='white'>錯誤號:12142</font>";
echo "</div><br />";
echo "錯誤原因:".mysql_error()."<br /><br />";
echo "<div style='height:20px; background:#FF0000; border:1px #FF0000 solid'>";
echo "<font color='white'>".$message."</font>";
echo "</div>";
echo "<font color='red'><pre>".$sql."</pre></font>";
$ip=$this->getip();
if($this->bulletin){
$time = date("Y-m-d H:i:s");
$message=$message."\r\n$this->sql"."\r\n客戶IP:$ip"."\r\n時間 :$time"."\r\n\r\n";

$server_date=date("Y-m-d");
$filename=$server_date.".txt";
$file_path="error/".$filename;
$error_content=$message;
//$error_content="錯誤的資料庫,不可以鏈接";
$file = "error"; //設置文件保存目錄

//建立文件夾
if(!file_exists($file)){
if(!mkdir($file,0777)){
//默認的 mode 是 0777,意味著最大可能的訪問權
die("upload files directory does not exist and creation failed");
}
}

//建立txt日期文件
if(!file_exists($file_path)){

//echo "建立日期文件";
fopen($file_path,"w+");

//首先要確定文件存在並且可寫
if (is_writable($file_path))
{
//使用添加模式打開$filename,文件指針將會在文件的開頭
if (!$handle = fopen($file_path, 'a'))
{
echo "不能打開文件 $filename";
exit;
}

//將$somecontent寫入到我們打開的文件中。
if (!fwrite($handle, $error_content))
{
echo "不能寫入到文件 $filename";
exit;
}

//echo "文件 $filename 寫入成功";

echo "——錯誤記錄被保存!";

//關閉文件
fclose($handle);
} else {
echo "文件 $filename 不可寫";
}

}else{
//首先要確定文件存在並且可寫
if (is_writable($file_path))
{
//使用添加模式打開$filename,文件指針將會在文件的開頭
if (!$handle = fopen($file_path, 'a'))
{
echo "不能打開文件 $filename";
exit;
}

//將$somecontent寫入到我們打開的文件中。
if (!fwrite($handle, $error_content))
{
echo "不能寫入到文件 $filename";
exit;
}

//echo "文件 $filename 寫入成功";
echo "——錯誤記錄被保存!";

//關閉文件
fclose($handle);
} else {
echo "文件 $filename 不可寫";
}
}

}
echo "<br />";
if($this->is_error){
exit;
}
}
echo "</div>";
echo "</fieldset>";

echo "<br />";
}

//釋放結果集
function free(){
@mysql_free_result($this->result);
}

//資料庫選擇
function select_db($db_database){
return mysql_select_db($db_database);
}

//查詢欄位數量
function num_fields($table_name){
//return mysql_num_fields($this->result);
$this->query("select * from $table_name");
echo "<br />";
echo "欄位數:".$total = mysql_num_fields($this->result);
echo "<pre>";
for ($i=0; $i<$total; $i++){
print_r(mysql_fetch_field($this->result,$i) );
}
echo "</pre>";
echo "<br />";
}

//取得 MySQL 伺服器信息
function mysql_server($num=''){
switch ($num){
case 1 :
return mysql_get_server_info(); //MySQL 伺服器信息
break;

case 2 :
return mysql_get_host_info(); //取得 MySQL 主機信息
break;

case 3 :
return mysql_get_client_info(); //取得 MySQL 客戶端信息
break;

case 4 :
return mysql_get_proto_info(); //取得 MySQL 協議信息
break;

default:
return mysql_get_client_info(); //默認取得mysql版本信息
}
}

//析構函數,自動關閉資料庫,垃圾回收機制
function __destruct()
{
if(!empty($this->result)){
$this->free();
}
//echo "對象被釋放";
mysql_close($this->conn);
}//function __destruct();

/*獲得客戶端真實的IP地址*/
function getip(){
if(getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
{
$ip = getenv("HTTP_CLIENT_IP");
}
else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown")){
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
{
$ip = getenv("REMOTE_ADDR");
}
else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown")){
$ip = $_SERVER['REMOTE_ADDR'];
}
else{
$ip = "unknown";
}
return($ip);
}

}

?>

調用辦法:和上面差不多
<?php
$db=new mysql('localhost','root','','test',"conn",'gbk');
//實例化mysql類。主機名localhost,用戶名root,密碼空(''),資料庫test,連接方式普通連接(conn,pconn是永久鏈接),字元集gbk
$db->query("select * from test");
//訪問query函數。
echo $db->db_num_rows();
//訪問db_num_rows函數。顯示結果行數(因為類能有跟蹤功能)
?>

❷ PHP資料庫操作之基於Mysqli的資料庫操作類庫

此類庫簡單、易用,便於你自己修改和對功能的改善,能解決大部分
PHP
項目中執行的
SQL
操作。
初步工作
首先,請大家下載這個類庫
M.class.php 再下載一個
Mysqli
連接資料庫的類庫
MysqliDb.class.php(打包下載地址)
新建一個
includes
的文件夾,將下載下來的兩個
class
文件,放進去。
然後,請你在項目下創建一個
test.php
文件。註:UTF-8
文件格式
請先根據你機器的情況,填充以下代碼,用於連接資料庫:
復制代碼
代碼如下:
header('Content-Type:text/html;Charset=utf-8');
define('ROOT_PATH',
dirname(__FILE__));
define('DB_HOST',
'localhost');
//資料庫伺服器地址
define('DB_USER',
'root');
//資料庫用戶名
define('DB_PWD',
'×××');//資料庫密碼
define('DB_NAME',
'×××');
//資料庫名稱
define('DB_PORT',
'3306');
//資料庫埠
function
__autoload($className)
{

require_once
ROOT_PATH
.
'/includes/'.
ucfirst($className)
.'.class.php';
//自動載入
class
文件
}
好了,上面的這些操作都是初步工作,下面正式進入類庫的講解。
類庫講解
首先,我們得實例化
M.class.php,實例化很簡單:
復制代碼
代碼如下:
$m
=
new
M();
//這步操作代表
M.class.php
中的所有功能都封裝在了變數
$m

註:
1、M類庫中的方法參數說明,請到
M.class.php
文件中看詳細的注釋,這里不再進行敘述。建議在學習的時候,對照著看下文件中的參數即注釋。
2、講解代碼中用到的資料庫結構為:
復制代碼
代碼如下:
CREATE
TABLE
`user`
(

`id`
int(8)
unsigned
NOT
NULL
auto_increment,

`name`
varchar(50)
default
NULL,

`email`
varchar(100)
default
NULL,

`age`
smallint(3)
default
NULL,

`class_id`
int(8)
default
NULL,

`commit_time`
int(10)
default
NULL,

PRIMARY
KEY
(`id`),

KEY
`name`
(`name`)
)
ENGINE=MyISAM
DEFAULT
CHARSET=utf8
復制代碼
代碼如下:
CREATE
TABLE
`class`
(

`class_id`
int(8)
NOT
NULL
auto_increment,

`class_name`
varchar(100)
default
NULL,

PRIMARY
KEY
(`class_id`)
)
ENGINE=InnoDB
DEFAULT
CHARSET=utf8
並添加一條測試數據。
3、M類庫中,大部分方法都分兩中類型,即:SQL方法;拼接方法,具體在實例中可以看出
4、以下稱述中的
M

M.class.php
文件
方法1、Insert()
添加數據
Insert
方法的全部使用案例如下:
復制代碼
代碼如下:
$m->Insert("user",
null,
array('焦焦',
'[email protected]',
'23',
time()));
//
拼接方法:往`user`表中添加一條數據,返回值為資料庫影響的行數
$m->Insert("user",
null,
array('焦焦',
'[email protected]',
'23',
time()),
true);
//
功能同上,返回
last_insert_id(插入的增長id)
$m->Insert("INSERT
INTO
`user`
(`name`,
`email`,
`age`,
`commit_time`)
VALUES
('張小花',
'[email protected]',
'22',
'".time()."')");
//SQL方法,返回值為資料庫影響的行數
$m->Insert("INSERT
INTO
`user`
(`name`,
`email`,
`age`,
`commit_time`)
VALUES
('張小花',
'[email protected]',
'22',
'".time()."')",
true);
//
同上,返回
last_insert_id
註:Insert
方法中的第二個參數若為null,可自動獲得插入表除
auto_increment
欄位之外的所有欄位,詳情請看M源文件;若要返回值為最後插入的
ID,那麼請設置
Insert
方法的最後一個參數為
true(默認是false);
方法2、Update()
修改數據
update
方法的全部使用案例如下:
復制代碼
代碼如下:
$m->Update("user",
array('name'=>'李茹茹',
'age'=>24),
"id=1");
//拼接方法,修改id為1的數據的名稱為「李茹茹」;年齡為「24」,其方法的返回值為受影響的行數
$m->Update("UPDATE
`user`
SET
`name`='李茹茹',
`age`=24
WHERE
id
=
1");
//SQL
用法,功能同上
方法3、Del()
刪除數據
Del
方法的全部使用案例如下:
復制代碼
代碼如下:
$m->Del('user',
'id=3');
//拼接方法:刪除`user`表中
id
為3的數據,返回受影響的行數
$m->Del("DELETE
FROM
`user`
WHERE
id=4");
//SQL方法:刪除`user`表中
id
為4的數據,返回受影響的行數
$m->Del("DELETE
FROM
`user`
WHERE
id
in
(10,
11,
12)");
//SQL方法:刪除多條數據,刪除`user`表中
id

10、11、12
的數據,返回受影響的行數
方法4、Total()
獲取記錄數,返回值都為int
Del
方法的全部使用案例如下:
復制代碼
代碼如下:
$m->Total('user');
//拼接方法:返回
`user`表中的記錄數,無條件
$m->Total('user',
'id>1');
//拼接方法:返回
`user`表中
id
大於1的記錄數,有條件
$m->Total("SELECT
COUNT(*)
AS
total
FROM
`user`");
//SQL方法,註:使用SQL方法,語句中必須使用
"AS
total",否則會報錯
方法5、IsExists()
檢查數據是否存在,返回值為boolean
復制代碼
代碼如下:
$m->IsExists('user',
"`name`='焦焦'");
//拼接方法:返回`user`表中是否存在`name`為「焦焦」的數據,返回true,若不存在,返回false
方法6、InsertId()
獲取表下一個添加的自動增長id,注意,這里不進行添加操作,只是獲取下一個增長id
復制代碼
代碼如下:
echo
$m->InsertId('user');
//獲取`user`
表下一個添加的自動增長id
方法7、GetRow()
返回單條數據,返回值為一維數組
GetRow
方法的全部使用案例如下:
復制代碼
代碼如下:
$data
=
$m->GetRow("SELECT
`name`,email
FROM
`user`
WHERE
id=1");
//SQL方法,返回一維數組,例如:Array
(
[name]
=>
焦焦
[email]
=>
[email protected]
)
$data
=
$m->GetRow("SELECT
u.`name`,
u.email,
c.class_name
FROM
`user`
u,
`class`
c
WHERE
u.class_id=c.class_id
AND
u.id=1");
//SQL方法,多表查詢
$data
=
$m->GetRow('user',
'`name`,email',
"id=1");
//拼接方法
$data
=
$m->GetRow('user
as
u,`class`
c',
'u.`name`,u.email,c.class_name',
"u.id=1
AND
u.class_id=c.class_id");
//拼接方法,多表查詢
$data
=
$m->GetRow("SELECT
`name`,email
FROM
`user`");
//如果沒有指定條件應該是顯示全部信息,但是在此方法中將默認顯示第一條(不推薦這么使用!!!)
$data
是查詢出來的一維數組。
方法8、GetOne()
返回單個數據
GetOne
方法的全部使用案例如下:
復制代碼
代碼如下:
$name
=
$m->GetOne("SELECT
`name`
FROM
`user`
WHERE
id=1");
//SQL方法,返回一個字元串,例如:焦焦
$name
=
$m->GetOne("user",
"name",
"id=1");
//拼接方法,返回一個字元串,例如:焦焦
方法9、FetchAll()
返回所有記錄
復制代碼
代碼如下:
$data
=
$m->FetchAll("user");
//返回`user`表中的所有記錄,以二維數組的形式
$data
=
$m->FetchAll("SELECT
*
FROM
`user`");
//SQL
方法,功能和返回值同上
$data
=
$m->FetchAll("user",
"name,email",
"id>1",
'id
DESC',
'2');
//返回兩條id>1的數據,只顯示name,email,並且以id
為倒序排序。註:請注意該方法的最後一個參數也可以為'0,2',目的是為分頁准備的,如果第一頁為'0,2'的話,那麼第二頁就是'2,2'
//該方法也支持聯表查詢和多表查詢,下面以聯表查詢為例
$data
=
$m->FetchAll("`user`
as
u
LEFT
JOIN
`class`
as
c
ON
u.class_id=c.class_id",
"u.`name`,u.email,
c.class_name",
"u.id=1");
//注意:該拼接方法中,ON
添加的位置
註:對於該
FetchAll
方法,後續我會寫一篇使用該方法進行完美分頁的文章!!請關注。
方法10、MultiQuery()
執行多條SQL語句
復制代碼
代碼如下:
$sql
=
"INSERT
INTO
user
(`name`,email,
age,
class_id,
commit_time)
VALUES
('賈花花',
'[email protected]',
'22',
'1',
'".time()."')";
//添加一個名叫「賈花花」的學生信息
$sql
.=
";DELETE
FROM
`user`
WHERE
`name`='焦焦'";
//刪除一條名叫「焦焦」的學生信息
//解釋:$sql
是多條
SQL
以英文;(分號)拼接起來的
$data
=
$m->MultiQuery($sql);
//返回為true,代表執行成功;為false,代表執行失敗
類庫講解完畢
到此該類庫的全部功能就講解完畢,希望你能多看看M文件,了解其內部運行的機制。M
文件不會存在執行緩慢情況,請大家放心使用。
如果在使用過程中出現
SQL
拼接錯誤,類庫會報出友善的錯誤提示。
有問題請留言,歡迎大家的批評和建議,加油!學習好運。

❸ PHP用戶類的一個方法怎樣調用資料庫操作類

直接調用就行了,不過可能你需要引用文件,以下是例子
//文件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();
}
}以上只是示意,如果文件不在一個目錄下記得修改路徑。而且,一般來說資料庫對象應該包含連接資料庫和數據操作的全部功能,不需要分別寫在兩個類裡面。我覺得你對面向對象的理解還很淺薄,需要進一步累積經驗。

❹ github上面有沒有比較好的php資料庫操作類

medoo,挺好用的!!!!!!!

❺ php如何使用類和資料庫進行數據操作

貼出自己寫的一個資料庫類吧。
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();//清空查詢結果
?>

好吧,網路的這個表單輸入框真爛,不能調格式,代碼格式可能很亂,就麻煩樓主慢慢看吧。若有問題再發消息給我網路號。

❻ PHP基於單例模式實現的資料庫操作基類

本文實例講述了PHP基於單例模式實現的資料庫操作基類。分享給大家供大家參考,具體如下:
配置文件:
<?php
$db
=
array(
'host'=>'localhost',
'user'=>'root',
'password'=>'',
'database'=>'test',
)
?>
php
資料庫基類:
<?php
class
db
{
public
$conn;
public
static
$sql;
public
static
$instance=null;
private
function
__construct(){
require_once('db.config.php');
$this->conn
=
mysql_connect($db['host'],$db['user'],$db['password']);
if(!mysql_select_db($db['database'],$this->conn)){
echo
"失敗";
};
mysql_query('set
names
utf8',$this->conn);
}
public
static
function
getInstance(){
if(is_null(self::$instance)){
self::$instance
=
new
db;
}
return
self::$instance;
}
/**
*
查詢資料庫
*/
public
function
select($table,$condition=array(),$field
=
array()){
$where='';
if(!empty($condition)){
foreach($condition
as
$k=>$v){
$where.=$k."='".$v."'
and
";
}
$where='where
'.$where
.'1=1';
}
$fieldstr
=
'';
if(!empty($field)){
foreach($field
as
$k=>$v){
$fieldstr.=
$v.',';
}
$fieldstr
=
rtrim($fieldstr,',');
}else{
$fieldstr
=
'*';
}
self::$sql
=
"select
{$fieldstr}
from
{$table}
{$where}";
$result=mysql_query(self::$sql,$this->conn);
$resuleRow
=
array();
$i
=
0;
while($row=mysql_fetch_assoc($result)){
foreach($row
as
$k=>$v){
$resuleRow[$i][$k]
=
$v;
}
$i++;
}
return
$resuleRow;
}
/**
*
添加一條記錄
*/
public
function
insert($table,$data){
$values
=
'';
$datas
=
'';
foreach($data
as
$k=>$v){
$values.=$k.',';
$datas.="'$v'".',';
}
$values
=
rtrim($values,',');
$datas
=
rtrim($datas,',');
self::$sql
=
"INSERT
INTO
{$table}
({$values})
VALUES
({$datas})";
if(mysql_query(self::$sql)){
return
mysql_insert_id();
}else{
return
false;
};
}
/**
*
修改一條記錄
*/
public
function
update($table,$data,$condition=array()){
$where='';
if(!empty($condition)){
foreach($condition
as
$k=>$v){
$where.=$k."='".$v."'
and
";
}
$where='where
'.$where
.'1=1';
}
$updatastr
=
'';
if(!empty($data)){
foreach($data
as
$k=>$v){
$updatastr.=
$k."='".$v."',";
}
$updatastr
=
'set
'.rtrim($updatastr,',');
}
self::$sql
=
"update
{$table}
{$updatastr}
{$where}";
return
mysql_query(self::$sql);
}
/**
*
刪除記錄
*/
public
function
delete($table,$condition){
$where='';
if(!empty($condition)){
foreach($condition
as
$k=>$v){
$where.=$k."='".$v."'
and
";
}
$where='where
'.$where
.'1=1';
}
self::$sql
=
"delete
from
{$table}
{$where}";
return
mysql_query(self::$sql);
}
public
static
function
getLastSql(){
echo
self::$sql;
}
}
$db
=
db::getInstance();
//$list
=
$db->select('demo',array('name'=>'tom','password'=>'ds'),array('name','password'));
//echo
$db->insert('demo',array('name'=>'腳本之家','password'=>'123'));
//echo
$db->update('demo',array("name"=>'xxx',"password"=>'123'),array('id'=>1));
echo
$db->delete('demo',array('id'=>'2'));
db::getLastSql();
echo
"<pre>";
?>
更多關於PHP操作資料庫相關內容感興趣的讀者可查看本站專題:《php+mysql資料庫操作入門教程》、《PHP基於pdo操作資料庫技巧總結》及《php常見資料庫操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。

❼ 編輯器提示thinkphp的資料庫操作類有問題,看官方的示例,只要有調用資料庫的地方就回提示錯誤

厄,這已經不僅僅是你有沒有學習thinkphp的問題了,錯誤信息那裡寫的很清楚:Unknown database 'demo'這個英文看的懂吧,位置資料庫demo,是你在config.php這裡面配置的資料庫名稱錯了

❽ php資料庫類操作問題,求高手來看看

function open_bm($o_bm, $o_pxbm, $o_fs) //打開一張表
{
//此處沒有返回結果集,加上return就可以了
return $this->query("SELECT * FROM $o_bm order by $o_pxbm $o_fs");
}
此外, mysql_result的第一個參數是resource.第二個是數據行編號. 數據行編號從0開始,你輸入1時請確保結果集至少2條數據
建議你每個function都應該有return.

❾ php支持哪些數據類型

php的數據類型有:1、String字元串型;2、Integer整型;3、Float和Double浮點型;4、Boolean布爾型;5、Array數組;6、Object對象;7、NULL空值等等。

❿ PHP中有幾種主要的數據類型,通俗的解釋一下他們

數據類型有三種:
 1.標量數據類型
 
標量數據類型包括以下幾種。
(1)boolean:布爾型
布爾變數是PHP變數中最簡單的。它保存一個True或者False值。其中True或者False是PHP的內部關鍵字。設定一個布爾型的變數,只需將True或者False賦值給該變數
(2)string:字元串
字元串是連續的字元序列,字元串中的每個字元只佔用一個位元組。在PHP中,定義字元串有3種方式:
        單引號方式,
        雙引號方式,
 
        Heredoc方式。
 
(3)integer:整數
整數數據類型只能包含整數。這些數據類型可以是正數或負數。在32位的操作系統中,有效的范圍是−2 147 483 648~+2 147 483 647。
(4)double:浮點數
浮點數據類型可以用來存儲數字,也可以保存小數。它提供的精度不整數大得多。在32位的操作系統中,有效的范圍是1.7E-308~1.7E+308。
 
   2.復合數據類型
 
復合數據類型包括以下兩種。
(1)array:數組
可以是二維、三維或者多維,數組中的各元素可以是string、integer或double,也可以是array。
(2)object:對象類型
 
   3.特殊數據類型
 
特殊數據類型包括以下兩種。
(1)resource:資源
資源是PHP內的幾個函數所需要的特殊數據類型,由編程人員來分配。
(2)null:空值
空值是最簡單的數據類型。表示沒有為該變數設置任何值,另外,空值(NULL)不區分大小寫。

熱點內容
二級c語言技巧 發布:2025-01-13 07:54:37 瀏覽:2
自動充值腳本 發布:2025-01-13 07:48:02 瀏覽:19
越容易壓縮 發布:2025-01-13 07:37:37 瀏覽:558
ecstore資料庫 發布:2025-01-13 07:29:43 瀏覽:297
手機設置密碼忘記了怎麼解開 發布:2025-01-13 07:28:29 瀏覽:21
存儲卡交流 發布:2025-01-13 07:16:06 瀏覽:984
php字元串浮點數 發布:2025-01-13 07:15:28 瀏覽:999
python排序cmp 發布:2025-01-13 07:09:04 瀏覽:73
雲腳本精靈 發布:2025-01-13 07:03:27 瀏覽:619
高維訪問 發布:2025-01-13 07:03:23 瀏覽:976