php操作mysqli(⽰例代码)
<?php
define("MYSQL_OPEN_LOGS",true);
class mysqliHelp
{
private $db;
public function __construct()
{
//如果要查询⽇志log的话,怎么办
}
public function __get($name )
{
//echo "__GET:",$name;
if(in_array($name,array("db"),true))//或者isset($this->$name)
return $this->$name;
return null;
}
public function connect($host,$user,$pass,$db,$charSet='utf8',$force=false)
{
if($this->db && ($this->db instanceof mysqli) && !$force)
{
return ;
}
$this->db=new mysqli($host,$user,$pass,$db);
if (mysqli_connect_error()) {
die('Connect Error (' . mysqli_connect_errno() . ') '
. mysqli_connect_error());
}
$this->db->set_charset($charSet);
}
//$dbname string
//返回值如果成功则返回 TRUE,失败则返回 FALSE。
function select_db ($dbname )
{
return $this->db->select_db($dbname);
}
//$query mysqli_result
//$resulttype int MYSQLI_ASSOC, MYSQLI_NUM, or MYSQLI_BOTH. Defaults to MYSQLI_BOTH.
//返回值 Returns an array of strings that corresponds to the fetched row or NULL if there are no more rows in resultset. function fetch_array(/*mysqli_result*/ $query, $resulttype = MYSQLI_ASSOC)
{
//var_dump(!null);
if(!$query || !($query instanceof mysqli_result))
return NULL;
return $query->fetch_array($resulttype);//
function data_seek($result,$offset)
{
return $result->data_seek($offset);
}
function fetch_assoc($query)
{
return $query->fetch_assoc();// 关联数组
}
function fetch_row($query)
{
return $query->fetch_row();// 索引数组,数字0,1。eg。。。
}
function fetch_fields($query)
{
return $query->fetch_fields();
}
//$query string
//$resultmode int
//返回值如果成功则返回 TRUE,失败则返回 FALSE。 For SELECT, SHOW, DESCRIBE or EXPLAIN mysqli_query() will return a result object.
public function query($sql ,$resultmode=MYSQLI_STORE_RESULT )
{
if(MYSQL_OPEN_LOGS) {
$sqlstarttime = $sqlendttime = 0;
$mtime = explode(' ', microtime());
$sqlstarttime = $mtime[1]+ $mtime[0] ;
}
//真正查询
$query=$this->db->query($sql,$resultmode);
if(MYSQL_OPEN_LOGS) {
// sleep(1);
$mtime = explode(' ', microtime());
$sqlendttime = $mtime[1] + $mtime[0] ;
$sqlQueryTime = number_format($sqlendttime - $sqlstarttime,6);
/
/dblogs($sql, $sqlQueryTime,1);
$explain = array();
$info = $this->db->info;
if($query && preg_match("/^(select )/i", $sql)) {
$explain = $this->fetch_array($this->db->query('EXPLAIN '.$sql), MYSQLI_ASSOC );
}
$GLOBALS['mysql_debug_query'][] = array('sql'=>$sql, 'time'=>$sqlQueryTime, 'info'=>$info, 'explain'=>$explain); }
if(!$query)
$this->halt('MySQL Query Error', $sql);
}
return $query;
}
//返回值 mysqli_stmt对象
function prepare($sql)
{
return $this->db->prepare($sql);
}
function affected_rows() {
return $this->db->affected_rows;
}
function error()
{
return $this->db->error;
}
function errno()
{
return $this->db->errno;
}
//result 没有
function num_rows($query)
{
return $query->num_rows;
}
/
/返回值 int The number of fields from a result set.
//也可以⽤另外⼀种⽅式 mysqliHelp->db->field_count返回。 function num_fields($query)
{
return $query->field_count;
}
function free_result($query)
{
//all methods are equivalent;
$query->free();
//$query->free_result();
//$query->close();
}
function insert_id()
{
if(($id = $this->db->insert_id)>= 0)
{
return $id;
}else
{
return intval($idArr[0]);
}
//return ($idArr=$this->fetch_array($this->query("SELECT last_insert_id() as id")))[0]
/
/return ($id = $this->db-insert_id)>= 0 ? $id : 0 ;
}
function close() {
return $this->db->close();
}
function halt($message,$sql)
{
$dberror = $this->error();
$dberrno = $this->errno();
$help_link = "faqsenz/?
type=mysql&dberrno=".rawurlencode($dberrno)."&dberror=".rawurlencode($dberror);
echo "<div style=\"position:absolute;font-size:11px;font-family:verdana,arial;background:#EBEBEB;padding:0.5em;\"> <b>MySQL Error</b><br>
<b>Message</b>: $message<br>
<b>SQL</b>: $sql<br>
<b>Error</b>: $dberror<br>
<b>Errno.</b>: $dberrno<br>
<a href=\"$help_link\" target=\"_blank\">Click here to seek help.</a>
</div>";
exit();
}
function __destruct()
{
$this->db=null;
}
/* MySQLi类
⾯向对象接⼝⾯向过程接⼝别名描述
属性
$mysqli->affected_rows mysqli_affected_rows() N/A 获取前⼀个Mysql操作的受影响⾏数
$mysqli->client_info mysqli_get_client_info() N/A 返回字符串类型的Mysql客户端版本信息
$mysqli->client_version mysqli_get_client_version() N/A 返回整型的Mysql客户端版本信息
$mysqli->connect_errno mysqli_connect_errno() N/A 返回最后⼀次连接调⽤的错误代码
$mysqli->connect_error mysqli_connect_error() N/A 返回⼀个字符串描述的最后⼀次连接调⽤的错误代码
$mysqli->errno mysqli_errno() N/A 返回最近的函数调⽤产⽣的错误代码
$mysqli->error mysqli_error() N/A 返回字符串描述的最近⼀次函数调⽤产⽣的错误代码
$mysqli->field_count mysqli_field_count() N/A 返回最近⼀次查询获取到的列的数⽬
$mysqli->host_info mysqli_get_host_info() N/A 返回⼀个能够代表使⽤的连接类型的字符串
$mysqli->protocol_version mysqli_get_proto_info() N/A 返回使⽤的Mysql协议的版本信息
$mysqli->server_info mysqli_get_server_info() N/A 返回Mysql服务端版本的信息
$mysqli->server_version mysqli_get_server_version() N/A 返回整型的Mysql服务端版本信息
$mysqli->info mysqli_info() N/A 最近⼀次执⾏的查询的检索信息
$mysqli->insert_id mysqli_insert_id() N/A 返回最后⼀次查询⾃动⽣成并使⽤的id
$mysqli->sqlstate mysqli_sqlstate() N/A 返回前⼀个Mysql操作的SQLSTATE错误
$mysqli->warning_count mysqli_warning_count() N/A 返回给定链接最后⼀次查询的警告数量⽅法
mysqli->autocommit() mysqli_autocommit() N/A 打开或关闭数据库的⾃动提交功能
mysqli->character_set_name(), mysqli->client_encoding mysqli_character_set_name() mysqli_client_encoding() 返回数据库连接的默认字符集
mysqli->close() mysqli_close() N/A 关闭先前打开的数据库连接
mysqli->commit() mysqli_commit() N/A 提交当前事务
mysqli::__construct() mysqli_connect() N/A 打开⼀个到Mysql服务端的新的连接[注意:静态⽅法]
mysqli->debug() mysqli_debug() N/A 执⾏调试操作
mysqli->dump_debug_info() mysqli_dump_debug_info() N/A 将调试信息转储到⽇志中
mysqli->get_charset() mysqli_get_charset() N/A 返回对象的字符集
mysqli->get_connection_stats() mysqli_get_connection_stats() N/A 返回客户端连接的统计信息。仅可⽤于 mysqlnd。 mysqli->get_client_info() mysqli_get_client_info() N/A 返回字符串描述的Mysql客户端版本
mysqli->get_client_stats() mysqli_get_client_stats() N/A 返回每个客户端进程的统计信息。仅可⽤于 mysqlnd。
mysqli->get_cache_stats() mysqli_get_cache_stats() N/A 返回客户端的zval缓存统计信息。仅可⽤于 mysqlnd。
mysqli->get_server_info() mysqli_get_server_info() N/A 没有⽂档
mysqli->get_warnings() mysqli_get_warnings() N/A 没有⽂档
mysqli::init() mysqli_init() N/A 初始化mysqli并且返回⼀个由mysqli_real_connect使⽤的资源类型。[不是在对象上,是它返回的$mysqli对象]
mysqli->kill() mysqli_kill() N/A 请求服务器杀死⼀个Mysql线程
mysqli->more_results() mysqli_more_results() N/A 检查⼀个多语句查询是否还有其他查询结果集
mysqli->multi_query() mysqli_multi_query() N/A 在数据库上执⾏⼀个多语句查询
mysqli->next_result() mysqli_next_result() N/A 从multi_query中准备下⼀个结果集
mysqli->options() mysqli_options() mysqli_set_opt() 设置选项
mysqli->ping() mysqli_ping() N/A ping⼀个服务器连接,或者如果那个连接断了尝试重连
mysqli->prepare() mysqli_prepare() N/A 准备⼀个⽤于执⾏的SQL语句
mysqli->query() mysqli_query() N/A 在数据库上执⾏⼀个查询
mysqli->real_connect() mysqli_real_connect() N/A 打开⼀个到Mysql服务端的连接
mysqli->real_escape_string(), mysqli->escape_string() mysqli_real_escape_string() mysqli_escape_string() 转义字符串中⽤于SQL语句中的特殊字符,这个转换会考虑连接的当前字符集。
mysqli->real_query() mysqli_real_query() N/A 执⾏⼀个SQL查询
mysqli->rollback() mysqli_rollback() N/A 回滚当前事务
mysqli->select_db() mysqli_select_db() N/A 为数据库查询选择默认数据库
mysqli->set_charset() mysqli_set_charset() N/A 设置默认的客户端字符集
mysqli->set_local_infile_default() mysqli_set_local_infile_default() N/A 清除⽤户为load data local infile命令定义的处理程序
mysqli->set_local_infile_handler() mysqli_set_local_infile_handler() N/A 设置LOAD DATA LOCAL INFILE命令执⾏的回调函数
mysqli->ssl_set() mysqli_ssl_set() N/A 使⽤SSL建⽴安装连接
mysqli->stat() mysqli_stat() N/A 获取当前系统状态
mysqli->stmt_init() mysqli_stmt_init() N/A 初始化⼀个语句并且返回⼀个mysqli_stmt_prepare使⽤的对象
mysqli->store_result() mysqli_store_result() N/A 传输最后⼀个查询的结果集
mysqli->thread_id() mysqli_thread_id() N/A 返回当前连接的线程ID
mysqli->thread_safe() mysqli_thread_safe() N/A 返回是否设定了线程安全
mysqli->use_result() mysqli_use_result() N/A 初始化⼀个结果集的取回
*/
/*
MySQL_STMT
⾯向对象接⼝过程化接⼝别名(不要使⽤)描述
属性
$mysqli_stmt->affected_rows mysqli_stmt_affected_rows() N/A 返回最后⼀条倍执⾏的语句改变,删除或插⼊的总⾏数 $mysqli_stmt->errno mysqli_stmt_errno() N/A 返回最近⼀次语句调⽤的错误代码
$mysqli_stmt->error mysqli_stmt_error() N/A 返回最后⼀条语句错误的字符串描述
mysql操作官方文档$mysqli_stmt->field_count mysqli_stmt_field_count() N/A 返回给定语句得到的字段数量
$mysqli_stmt->insert_id mysqli_stmt_insert_id() N/A 获取前⼀个INSERT操作⽣成的ID
$mysqli_stmt->num_rows mysqli_stmt_num_rows() N/A 返回语句结果集中的⾏数
$mysqli_stmt->param_count mysqli_stmt_param_count() mysqli_param_count() 返回给定语句中参数数量
$mysqli_stmt->sqlstate mysqli_stmt_sqlstate() N/A 返回前⼀个语句操作的SQLSTATE错误代码⽅法
mysqli_stmt->attr_get() mysqli_stmt_attr_get() N/A ⽤于获取语句属性的当前值
mysqli_stmt->attr_set() mysqli_stmt_attr_set() N/A ⽤于修改prepared语句的⾏为
mysqli_stmt->bind_param() mysqli_stmt_bind_param() mysqli_bind_param() 将⼀个变量作为参数绑定到prepared语句上
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论