免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

php定義一個數(shù)據(jù)庫的類 php定義一個數(shù)據(jù)庫的類數(shù)

php封裝一個class類,實(shí)現(xiàn)mysql數(shù)據(jù)庫的增刪改查怎么操做?

class sqlHelper{

創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)與策劃設(shè)計(jì),鼓樓網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:鼓樓等地區(qū)。鼓樓做網(wǎng)站價格咨詢:13518219792

public $conn;

public $dbname="數(shù)據(jù)庫名稱";

public $username="數(shù)據(jù)庫用戶名";

public $password="數(shù)據(jù)庫密碼";

public $host="localhost";

//連接數(shù)據(jù)庫

public function __construct(){

$this-conn=mysql_connect($this-host,$this-username,$this-password);

if(!$this-conn){

die("連接失敗".mysql_error());

}

mysql_select_db($this-dbname,$this-conn);

}

//執(zhí)行查詢語句

public function execute_dql($sql){

$res=mysql_query($sql,$this-conn);

return $res;

}

//執(zhí)行增填改語句

public function execute_dml($sql){

$b=mysql_query($sql,$this-conn);

if(!$b){

return 3;

}else{

if(mysql_affected_rows($this-conn)){

return 1;//表示OK

}else{

return 2;//表示沒有行收到影響

}

}

}

}

PHP 用類寫數(shù)據(jù)庫功能

你的

echo "scriptalert('$sql');/script"; //打印測試 , 意思應(yīng)該是在客戶端通過js把$sql變量打印出來。如果是php,我想應(yīng)該是這么寫:

echo "scriptalert('{$sql}');/script"; 因?yàn)槭窃谧址幸米兞浚隳欠N寫法可能不會有內(nèi)容。 還有 $sql變量通過上面的兩個操作,F(xiàn)n_select函數(shù)是沒有返回值的,所有$sql=$db-Fn_select獲得的$sql值是空的,是沒有內(nèi)容的。你可以在Fn_select函數(shù)中設(shè)置一個返回值,比如return true,或者return false, $sql就有值了。

PHP+MySQL 如何把針對數(shù)據(jù)庫的添加,查詢,修改,刪除等操作做成一個PHP寫的類?

類我就不寫了,簡單的說function吧

function selectMysql ($columns, $table, $conds=false, $extra=false) {

if (count($columns)) $col = join(",", $columns);

else return false;

$cond = "";

if ($conds) $cond = "WHERE" . join(",", $conds);

$ex = "";

if ($extra) $ex = $extra;

$result = array();

$q = "SELECT $col FROM $table $cond $ex";

$s = mysql_query($q);

while ($r = mysql_fetch_assoc($r)) $result[] = $r;

if (count($result)) return $result;

return false;

}

就寫一個select吧 其他類似。

不過我感覺這樣寫意義不是很大呀~ sql操作最重要的column table conditions 等等你還是要從外面?zhèn)鳌?/p>

這個函數(shù)的column和condition接受數(shù)組(你改成str也行)

table和extra(主要是為了可以放點(diǎn)limit啊之類的)傳入str。

返回一個二維數(shù)組(如果有值的話),$result[]對應(yīng)sql里的一行記錄。 $result[][]就是某行某列了。

PHP中寫一個數(shù)據(jù)庫查詢的類的方法代碼要如何寫

?php

if(!defined("INCLUDE_MYSQL_OK")) {

define("INCLUDE_MYSQL_OK","");

class MySQL_class {

var $debug = true;

var $db,

$id,

$result, /* 查詢結(jié)果指針 */

$rows, /* 查詢結(jié)果行數(shù) */

$fields, /* 查詢結(jié)果列數(shù) */

$data, /* 數(shù)據(jù)結(jié)果 */

$arows, /* 發(fā)生作用的紀(jì)錄行數(shù)目 */

$iid; /* 上次插入操作后,可能存在的"AUTO_INCREMENT"屬性字段的值,如果為"0",則為空 */

var $user, $pass, $host, $charset;

/*

* 請注意用戶名和密碼是否正確

*/

function Setup ($host, $user, $pass, $charset='utf8') {

$this-host = $host;

$this-user = $user;

$this-pass = $pass;

$this-charset = $charset;

}

function Connect ($db = "") {

global $CFG_MYSQL_INFO;

if (!$this-host) {

$this-host = $CFG_MYSQL_INFO["host"];

}

if (!$this-user) {

$this-user = $CFG_MYSQL_INFO["user"]; /* 在這里作修改 */

}

if (!$this-pass) {

$this-pass = $CFG_MYSQL_INFO["passwd"]; /* 在這里作修改 */

}

if (!$this-charset) {

$this-charset = "utf8"; /* 在這里作修改 */

}

if (empty($db))

$this-db = $CFG_MYSQL_INFO["database"];

else

$this-db = $db;

$this-id = @mysql_connect($this-host, $this-user, $this-pass);

if (!$this-id)

return false;

$this-SelectDB($this-db); /* 定位到指定數(shù)據(jù)庫 */

$this-Query("SET NAMES '".$this-charset."'");

return true;

}

function Close(){

@mysql_close($this-id);

}

function SelectDB ($db) {

if(!@mysql_select_db($db, $this-id))

return false;

else

return true;

}

function Begin () {

$this-result = @mysql_query("START TRANSACTION WITH CONSISTENT SNAPSHOT", $this-id);

if (!$this-result)

return false;

return true;

}

function Commit () {

$this-result = @mysql_query("COMMIT", $this-id);

if (!$this-result)

return false;

return true;

}

function Rollback () {

$this-result = @mysql_query("ROLLBACK", $this-id);

if (!$this-result)

return false;

return true;

}

function Escape ($str) {

$escstr = mysql_escape_string($str);

return $escstr;

}

# 普通查詢功能,主要用于返回結(jié)果是多條記錄的情況

# 請使用 Fetch 方法取得每條記錄信息

function Query ($query) {

$this-result = @mysql_query($query, $this-id);

if (!$this-result)

{

if ($this-debug)

MySQL_ErrorMsg ("不能執(zhí)行查詢(query): $query");

else

return false;

}

$this-rows = @mysql_num_rows($this-result);

$this-fields = @mysql_num_fields($this-result);

if (!$this-rows) return false;

return true;

}

function QuerySql ($query) {

$ret = @mysql_query($query, $this-id);

if ($ret === false)

{

if ($this-debug)

MySQL_ErrorMsg ("不能執(zhí)行查詢(query): $query");

else

return false;

}

$this-result = $ret;

$this-rows = @mysql_num_rows($this-result);

$this-fields = @mysql_num_fields($this-result);

return true;

}

# 如果查詢結(jié)果為單條記錄時使用,返回結(jié)果存儲于數(shù)組 data 中

function QueryRow ($query) {

$this-result = @mysql_query($query, $this-id);

if (!$this-result)

{

if ($this-debug)

MySQL_ErrorMsg ("不能執(zhí)行查詢(query): $query");

else

return false;

}

$this-rows = @mysql_num_rows($this-result);

$this-data = @mysql_fetch_array($this-result, MYSQL_ASSOC);

//MySQL_ErrorMsg ("不能從查詢結(jié)果中取得數(shù)據(jù) $query");

if (!$this-result || !$this-rows)

return false;

return true;

}

# 移動到指定記錄行,將該行結(jié)果儲存于數(shù)組 data 中

function Fetch ($row) {

if(!@mysql_data_seek($this-result, $row))

//MySQL_ErrorMsg ("不能定位到指定數(shù)據(jù)行 $row");

return false;

$this-data = @mysql_fetch_array($this-result, MYSQL_ASSOC);

//MySQL_ErrorMsg ("不能提取指定數(shù)據(jù)行數(shù)據(jù) $row");

if (!$this-data)

return false;

return true;

}

/* 以下方法將作用于 arows */

/* 此方法將作用于 iid */

function Insert ($query) {

$this-result = @mysql_query($query, $this-id);

if (!$this-result)

{

if ($this-debug)

MySQL_ErrorMsg ("不能執(zhí)行查詢(query): $query");

else

return false;

}

$this-arows = @mysql_affected_rows($this-id);

$this-iid = @mysql_insert_id($this-id);

return true;

}

function Update ($query) {

$this-result = @mysql_query($query, $this-id);

if (!$this-result)

{

if ($this-debug)

MySQL_ErrorMsg ("不能執(zhí)行查詢(query): $query");

else

return false;

}

$this-arows = @mysql_affected_rows($this-id);

if (!$this-arows || $this-arows == -1)

return false;

return true;

}

function Delete ($query) {

$this-result = @mysql_query($query, $this-id);

if (!$this-result)

{

if ($this-debug)

MySQL_ErrorMsg ("不能執(zhí)行查詢(query): $query");

else

return false;

}

$this-arows = @mysql_affected_rows($this-id);

return true;

}

function Error (){

return mysql_error()."(".mysql_errno().")";

}

function Errno (){

return mysql_errno();

}

}

/*

* MySQL_ErrorMsg

* 輸出錯誤信息

*/

function MySQL_ErrorMsg ($msg) {

# 關(guān)閉可能影響字符顯示的HTML代碼

echo("/ul/dl/ol\n");

echo("/table/script\n");

# 錯誤信息

$text = "font color=\"#000000\" style=\"font-size: 9pt; line-height: 12pt\"p系統(tǒng)提示:".$msg."br";

$text .= "錯誤信息:";

$text .= mysql_error()."br";

$text .= "錯誤代碼:".mysql_errno()."brbr";

$text .= "請稍候再試,如果問題仍然存在,請與 a href=\"mailto:wuqiong@igenus.org\"系統(tǒng)管理員/a 聯(lián)系!";

$text .= "/font\n";

die($text);

}

}

?

一些細(xì)節(jié)的地方自己修改吧 主要是我在別的文件專門定義了全局變量,你看一遍,把應(yīng)改的地方改一下就好了

php 連接數(shù)據(jù)庫類

我也剛剛學(xué)PHP,正在研究中,雖然你只給10分........

首先,將代碼保存到一個文件,如:mysql.class.php

其次,在一個常用的文件里調(diào)用:比如頭部文件header.php,因?yàn)槲曳旁诟夸浰杂孟旅娣绞綄?dǎo)入其他文件:

require dirname(__FILE__) . 'include/config.php';

//導(dǎo)入類文件

require dirname(__FILE__) . 'include/mysql.class.php';

//定義一個類及初始化數(shù)據(jù)庫類

$db = new mysql($db_host, $db_user, $db_pass, $db_name);

$db_host = $db_user = $db_pass = $db_name = NULL;

然后,在test.php文件調(diào)用:

require_once dirname(__FILE__) . '/header.php';

使用方法:

$sql = "讀取表";

$res = $db-query($sql);

$info = array();//定義數(shù)組

while($row=$db-fetchRow($res))

{

$arr['id'] = $row['id'];

$arr['title'] = $row['title'];

$info[] = $arr;

}

可以在顯示的地方用:

foreach($info as $i)

{

echo $i['title']."br /";

}

或是直接使用while

還用另一種調(diào)用方式:

$here_area = $db-getRow("select areaid,areaname from {$table}area where areaid='$areaid'");

$here[] = array('name'=$here_area['areaname'],'id'=$here_area['areaid']);

測試通過,因?yàn)槲艺谑褂?....................................

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;

//自動執(zhí)行__construct php5類構(gòu)建方法,如果PHP4和PHP5同時使用會自動使用PHP5的方法

function __construct($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $quiet = 0)

{

//自動執(zhí)行時調(diào)用mysql函數(shù)

$this-mysql($dbhost, $dbuser, $dbpw, $dbname, $pconnect, $quiet);

}

//php4類構(gòu)建方法,如果沒有 __construct 就自動執(zhí)行此功能

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;

}

}

}

?

PHP練級數(shù)據(jù)庫的類

我也不是老手,,呵

首先,,數(shù)據(jù)庫配置信息,,dbhost,dbport,dbuser,dbpass,dbname,charset這些參數(shù)最好不要設(shè)成全局變量,而從構(gòu)造函數(shù)傳遞...

這樣做的好處有幾點(diǎn)

這個類可以單獨(dú)調(diào)用,,?不用再包含配置文件,,因?yàn)槟阏{(diào)用類的php文件一定會先包含配置文件,,再包含數(shù)據(jù)庫操作類,,

通過參數(shù)傳遞可以提高類的獨(dú)立性,,這樣,,以后這個類可以被移植到任何系統(tǒng)里面調(diào)用,,,

1、取得結(jié)果集中字段的數(shù)目

這個是由你select?后面的東西來決定的,,如果你用的是select?*

你已經(jīng)寫了這個

$result=mysql_query($str."?limit?".$rows)or?die(mysql_error());

$count=0;

$data=array();

while($rs=mysql_fetch_row($result)){

$data[$count]=$rs;

$count++;

}

@mysql_free_result($result);

return?$result;

你可以在這段代碼@mysql_free_result($result);之前,,用count($data[0])函數(shù)來提取,,,你這里的return?$result是什么意思,,不是已經(jīng)釋放了嗎,,應(yīng)該是return?$data才對

$result=mysql_query($str."?limit?".$rows)or?die(mysql_error());

這一句你是限制提取條數(shù),,,但這在實(shí)際工作中沒有什么用處,,,

一般的分頁語句都是寫在sql里面的limit?x,xx;這樣

你這樣寫,,如果有1W條記錄,,你就沒辦法從數(shù)據(jù)庫的角度去分類

第二個也是一樣的

因?yàn)槟愕腟electRows($str,$rows)返回的是一個二維數(shù)組,,所以要知道有多少條記錄,,,只要用count($data)就可以知道..

$db=new?mysqlconn();

$str="SELECT?*?FROM?xxx?ORDER?BY?XXX?ASC";

$data=$db-SelectRows($str,$rows);

$counts=count($data);//這就是取得的總記錄數(shù)

名稱欄目:php定義一個數(shù)據(jù)庫的類 php定義一個數(shù)據(jù)庫的類數(shù)
網(wǎng)址分享:http://m.newbst.com/article32/dodhgpc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)品牌網(wǎng)站設(shè)計(jì)企業(yè)建站做網(wǎng)站定制網(wǎng)站服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)