php中怎么实现Mysql读写分离操作
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,php中怎么实现Mysql读写分离操作,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。连接案例:
千家信息网最后更新 2026年11月01日php中怎么实现Mysql读写分离操作
php中怎么实现Mysql读写分离操作,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
连接案例:
'www.aslibra.com', 'dbuser'=>'aslibra', 'dbpw'=>'www.aslibra.com', 'dbname'=>'test');$db_ro = array( array( 'dbhost'=>'www.aslibra.com:4306', 'dbuser'=>'aslibra', 'dbpw'=>'www.aslibra.com' ));$DB = new mysql_rw_php;//写入连接,单服务器操作$DB->connect($db_rw[dbhost], $db_rw[dbuser], $db_rw[dbpw], $db_rw[dbname]); //读取连接,可以多服务器操作$DB->connect_ro($db_ro[0][dbhost], $db_ro[0][dbuser], $db_ro[0][dbpw]);$DB->set_ro_list($db_ro);//send to rw$sql = "insert into a set a='test'";$DB->query($sql);//send to ro$sql = "select * from a";$qr = $DB->query($sql);while($row = $DB->fetch_array($qr)){ echo $row[a];}?>连接类:
link = @mysql_pconnect($dbhost, $dbuser, $dbpw)) { $halt && $this->halt('Can not connect to MySQL server'); } } else { if(!$this->link = @mysql_connect($dbhost, $dbuser, $dbpw)) { $halt && $this->halt('Can not connect to MySQL server'); } } //只读连接失败 if(!$this->link && !$halt) return false; //未初始化rw时,第一个连接作为rw if($this->link_rw == null) $this->link_rw = $this->link; if($this->version() > '4.1') { if($this->charset) { @mysql_query("SET character_set_connection=$this->charset, character_set_results=$this->charset, character_set_client=binary", $this->link); } if($this->version() > '5.0.1') { @mysql_query("SET sql_mode=''", $this->link); } } if($dbname) { $this->select_db($dbname); } } //连接一个只读的mysql数据库 function connect_ro($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0){ if($this->link_rw == null) $this->link_rw = $this->link; $this->link = null; //不产生halt错误 $this->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect, false); if($this->link){ //连接成功 //echo "link ro sussess!
"; $this->ro_exist = true; $this->link_ro = $this->link; if($this->cur_db){ //如果已经选择过数据库则需要操作一次 @mysql_select_db($this->cur_db, $this->link_ro); } }else{ //连接失败 //echo "link ro failed!
"; $this->link = &$this->link_rw; } } //设置一系列只读数据库并且连接其中一个 function set_ro_list($ro_list){ if(is_array($ro_list)){ //随机选择其中一个 $link_ro = $ro_list[array_rand($ro_list)]; $this->connect_ro($link_ro['dbhost'], $link_ro['dbuser'], $link_ro['dbpw']); } } function select_db($dbname) { //同时操作两个数据库连接 $this->cur_db = $dbname; if($this->ro_exist){ @mysql_select_db($dbname, $this->link_ro); } return @mysql_select_db($dbname, $this->link_rw); } function fetch_array($query, $result_type = MYSQL_ASSOC) { return mysql_fetch_array($query, $result_type); } function fetch_one_array($sql, $type = '') { $qr = $this->query($sql, $type); return $this->fetch_array($qr); } function query($sql, $type = '') { $this->link = &$this->link_rw; //判断是否select语句 if($this->ro_exist && preg_match ("/^(\s*)select/i", $sql)){ $this->link = &$this->link_ro; } $func = $type == 'UNBUFFERED' && @function_exists('mysql_unbuffered_query') ? 'mysql_unbuffered_query' : 'mysql_query'; if(!($query = $func($sql, $this->link)) && $type != 'SILENT') { $this->halt('MySQL Query Error', $sql); } $this->querynum++; return $query; } function affected_rows() { return mysql_affected_rows($this->link); } function error() { return (($this->link) ? mysql_error($this->link) : mysql_error()); } function errno() { return intval(($this->link) ? mysql_errno($this->link) : mysql_errno()); } function result($query, $row) { $query = @mysql_result($query, $row); return $query; } function num_rows($query) { $query = mysql_num_rows($query); return $query; } function num_fields($query) { return mysql_num_fields($query); } function free_result($query) { return mysql_free_result($query); } function insert_id() { return ($id = mysql_insert_id($this->link)) >= 0 ? $id : $this->result($this->query("SELECT last_insert_id()"), 0); } function fetch_row($query) { $query = mysql_fetch_row($query); return $query; } function fetch_fields($query) { return mysql_fetch_field($query); } function version() { return mysql_get_server_info($this->link); } function close() { return mysql_close($this->link); } function halt($message = '', $sql = '') { $dberror = $this->error(); $dberrno = $this->errno(); echo " MySQL Error
Message: $message
SQL: $sql
Error: $dberror
Errno.: $dberrno
"; exit(); }}?>看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
数据
数据库
服务器
帮助
服务
选择
清楚
成功
两个
内容
同时
对此
文章
新手
更多
案例
知识
行业
语句
资讯
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡豆
中智农互联网科技
互联网科技公司经营范围
互联网最新的科技
以房互联网科技
奇酷互联网科技公司
广州互联网络科技有限公司
有木互联网科技
左右互联网络科技
多迪互联网科技有限公司
互联网科技博主是什么意思
厦门比较好的科技互联网公司
湖北码尼互联网科技有限公司电话
和信科技工业互联网
燊美集互联网科技有限公司
西安小鹰速贷互联网科技有限公司
山东有哪些互联网科技公司
美国互联网科技实力
互联网科技数字货币
互联网科技接地气
南京欣网互联网络科技有限公司
新华互联网科技学校
互联网科技官网
盛创互联网科技有限公司
北京大学互联网科技怎么样
雨阳互联网卡科技有限公司
互联网风格科技公司名称
广州燕处互联网科技有限公司
科技互联网公司两年变化
深圳互联网科技园地址