$this->mysql_mysql操作类

/**

* MYSQL 操作类

* @author yht_0616@126.com

*/

class Mysql {

private $debug = false;//true 打开数据库调试模式 false关闭数据库调试模式

private $version = "";

private $link_id = NULL;

/**

* 连接数据库

*

* param string $dbhost数据库主机名

* param string $dbuser数据库用户名

* param string $dbpw数据库密码

* param string $dbname数据库名称

* param string $dbcharset数据库字符集

* param string $pconnect持久链接,1为开启,0为关闭

* return bool

**/

function connect($dbhost, $dbuser, $dbpwd, $dbname = '', $dbcharset = 'utf8', $pconnect = 0) {

if ($pconnect) {

if (! $this->link_id = mysql_pconnect ( $dbhost, $dbuser, $dbpwd )) {

$this->ErrorMsg ();

}

} else {

if (! $this->link_id = mysql_connect ( $dbhost, $dbuser, $dbpwd, 1 )) {

$this->ErrorMsg ();

}

}

$this->version = mysql_get_server_info ( $this->link_id );

if ($this->getVersion () > '4.1') {

if ($dbcharset) {

mysql_query ( "SET character_set_connection=" . $dbcharset . ", character_set_results=" . $dbcharset . ", character_set_client=binary", $this->link_id );

}

if ($this->getVersion () > '5.0.1') {

mysql_query ( "SET sql_mode=''", $this->link_id );

}

}

if (mysql_select_db ( $dbname, $this->link_id ) === false) {

$this->ErrorMsg ();

}

}

/**

* 插入数据

*

* @param string $table表名

* @param array $field_values数据数组

* @return id最后插入ID

*/

function save($table, $field_values) {

$fields = array ();

$values = array ();

$field_names = $this->getCol('DESC '.$table);

foreach ( $field_names as $value ) {

if (array_key_exists ( $value, $field_values ) == true) {

$fields [] = $value;

$values [] = "'" . $field_values [$value] . "'";

}

}

if (!empty($fields)) {

$sql = 'INSERT INTO '.$table.' ('.implode(',',$fields).') VALUES ('.implode ( ',',$values ).')';

if($this->query ($sql)){

return $this->getLastInsertId ();

}

}

return false;

}

/**

* 获取最后插入数据的ID

*/

function getLastInsertId() {

return mysql_insert_id ( $this->link_id );

}

/**

* 更新数据

*

* @param string $table要更新的表

* @param array $field_values要更新的数据,使用而为数据例:array('列表1'=>'数值1','列表2'=>'数值2')

* @param string $where 更新条件

* @return bool

*/

function update($table, $field_values, $where = '') {

$field_names = $this->getCol ( 'DESC ' . $table );

$sets = array ();

foreach ( $field_names as $value ) {

if (array_key_exists ( $value, $field_values ) == true) {

$sets [] = $value . " = '" . $field_values [$value] . "'";

}

}

if (! empty ( $sets )) {

$sql = 'UPDATE ' . $table . ' SET ' . implode ( ', ', $sets ) . ' WHERE ' . $where;

}

if ($sql) {

return $this->query ( $sql );

} else {

return false;

}

}

/**

* 删除数据

*

* @param string $table要删除的表

* @param string $where删除条件,默认删除整个表

* @return bool

*/

function delete($table,$where=''){

if(empty($where)){

$sql = 'DELETE FROM '.$table;

}else{

$sql = 'DELETE FROM '.$table.' WHERE '.$where;

}

if($this->query ( $sql )){

return true;

}else{

return false;

}

}

/**

* 获取数据列表

*

* @param string $sql查询语句

* @return array二维数组

*/

function findAll($sql) {

$res = $this->query ( $sql );

if ($res !== false) {

$arr = array ();

$row = mysql_fetch_assoc ( $res );

while ($row) {

$arr [] = $row;

$row = mysql_fetch_assoc ( $res );

}

return $arr;

} else {

return false;

}

}

/**

* 获取数据列表

*

* @param string $sql查询语句

* @param int $numrows返回个数

* @param int $offset指定偏移量

* @return array二维数组

*/

function selectLimit($sql, $numrows=-1, $offset=-1) {

if($offset==-1){

$sql .= ' LIMIT ' . $numrows;

}else{

$sql .= ' LIMIT ' . $offset . ', ' . $numrows;

}

return $this->findAll( $sql );

}

/**

* 获取一条记录

*

* @param string $sql查询语句

* @return array一维数组

*/

function find($sql) {

$res = $this->query ( $sql );

if ($res !== false) {

return mysql_fetch_assoc ( $res );

} else {

return false;

}

}

/**

* 返回查询记录数

*

* @return int

*/

function getRowsNum($sql) {

$query = $this->query ( $sql );

return mysql_num_rows ( $query );

}

/**

* 返回查询的结果的第一个数据

*

* @return string

*/

function getOneField($sql){

$val = mysql_fetch_array($this->query ( $sql ));

return $val[0];

}

/**

* 获取列

*

* @param string $sql

* @return array

*/

function getCol($sql) {

$res = $this->query( $sql );

if ($res !== false) {

$arr = array ();

$row = mysql_fetch_row ($res);

while ($row) {

$arr [] = $row [0];

$row = mysql_fetch_row ($res);

}

return $arr;

} else {

return false;

}

}

/**

* 发送一条 MySQL指令

*

* @param string $sql

* @return bool

*/

function query($sql) {

$sql=str_replace('xxxx_db_',DB_PREFIX, $sql);//xxxx_db sql语句中将xxxx_db替换成db_prefix

if ($this->debug) echo "

\n" . $sql . "\n
";//如果设置成调试模式,将打印SQL语句

if (! ($query = mysql_query ( $sql, $this->link_id ))) {

$this->ErrorMsg ();

return false;

} else {

return $query;

}

}

/**

* 获取数据库版本信息

*/

function getVersion() {

return $this->version;

}

/**

* 数据库调试

*/

function debug(){

$this->debug=true;

}

/**

* 数据库报错处理

*/

function ErrorMsg($message = '') {

if (empty($message)) $message = @mysql_error ();

exit ($message);

}

/**

* 关闭数据库连接(通常不需要,非持久连接会在脚本执行完毕后自动关闭)

*/

function close() {

return mysql_close ( $this->link_id );

}

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值