php连mysql的工具类
发布时间:2020-05-25 07:18:13 所属栏目:PHP 来源:互联网
导读:php连mysql的工具类
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。
<?php
class mysql {
private $defaultDB = null;
private $link = null;
private $sql = null;
private $bindValue = null;
public $num_rows = 0;
public $affected_rows = 0;
public $insert_id = 0;
public $queries = 0;
public function __construct() {
if(func_num_args()) {
$argv = func_get_arg(0);
if(!empty($argv) && is_array($argv)) {
$this->connect($argv);
$argv['charset'] = isset($argv['charset']) ? $argv['charset'] : 'utf8';
$this->setCharset($argv['charset']);
}
}
}
public function connect($argv,$charset = null) {
if($this->link) return false;
$argv = func_get_arg(0);
$argv['port'] = isset($argv['port']) ? $argv['port'] : 3306;
$this->link = mysqli_connect( $argv['host'],$argv['user'],$argv['password'],$argv['database'],$argv['port']);
if(mysqli_connect_errno()) { echo mysqli_connect_error(); exit(0); }
$this->defaultDB = $argv['database'];
if($charset)
$this->setCharset($charset);
}
public function selectDB($database){
$int = mysqli_select_db($this->link,$database);
if($int) $this->defaultDB = $database;
return $int;
}
public function query($sql) {
$result = mysqli_query($this->link,$sql);
if(mysqli_errno($this->link)) { echo mysqli_error($this->link); exit(0); }
$this->queries++;
if(preg_match('/^uses+(w+)/',$sql,$matches)) list($range,$this->defaultDB) = $matches;
$pattern = array('read'=> '/(?<=select|show)(.+)$/i','write'=> '/(?<=alter|use|replace|insert|update|delete)(.+)$/i');
if(preg_match($pattern['write'],$sql)) {
$this->affected_rows = mysqli_affected_rows($this->link);
}else{
$this->num_rows = mysqli_num_rows($result);
}
if(preg_match('/^insert(.+)$/i',$sql)) {
$this->insert_id = mysqli_insert_id($this->link);
}
return $result;
}
public function find($sql) {
$collection = array();
$result = $this->query($sql);
while($rows = mysqli_fetch_assoc($result))
array_push($collection,$rows);
mysqli_free_result($result);
return $collection;
}
public function findOne($sql) {
$result = $this->query($sql);
$rows = mysqli_fetch_assoc($result);
mysqli_free_result($result);
return $rows;
}
public function setCharset($charset) {
return mysqli_set_charset($this->link,$charset);
}
public function prepare($sql) {
$this->sql = $sql;
}
public function bindValue($search,$value) {
$this->bindValue = array();
$this->bindValue[$search] = $value;
}
public function execute() {
if(func_num_args()) {
$argv = func_get_arg(0);
if(!empty($argv) && is_array($argv)) {
if(!is_array($this->bindValue)) $this->bindValue = array();
$this->bindValue = array_merge($this->bindValue,$argv);
}
}
if($this->bindValue) {
foreach($this->bindValue as $search => $value) {
$this->sql = str_replace($search,$this->escape($value),$this->sql);
}
$this->bindValue = null;
}
$int = $this->query($this->sql);
//$this->sql = null;
return (boolean) $int;
}
public function escape($string) {
return mysqli_real_escape_string($this->link,$string);
}
public function close() {
return mysqli_close($this->link);
}
public function ping() {
return mysqli_ping($this->link);
}
public function autoCommit($boolean) {
return mysqli_autocommit($this->link,$boolean);
}
public function commit() {
return mysqli_commit($this->link);
}
public function rollback() {
return mysqli_rollback($this->link);
}
public function __destruct() {
if($this->link) $this->close();
unset($this->link,$this->defaultDB,$this->bindValue,$this->sql,$this->result,$this->num_rows,$this->affected_rows,$this->insert_id);
}
}
$argv = array(
'host' => 'localhost','user' => 'root','password' => '','port' => 3306,'database' => 'test','charset'=> 'utf8');
// Using the "mysql::__construct" method to connect MySQL database
$mysql = new mysql($argv);
var_dump($mysql->find('select version()'));
var_dump($mysql->queries);
// Using the "mysql::connect" method to connect MySQL database
$mysql = new mysql();
$mysql->connect($argv);
var_dump($mysql->find('select version()'));
var_dump($mysql->queries);
$mysql = new mysql();
$mysql->connect($argv);
$mysql->setCharset($argv['charset']);
var_dump($mysql->find('select version()'));
var_dump($mysql->queries);
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
