码迷,mamicode.com
首页 > 数据库 > 详细

php mysql_connect 在同一host下多数据库mysql_select_db()的bug .

时间:2019-12-12 12:44:33      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:use   exists   操作   localhost   bug   connect   not   数据   ror   

操作方法

创建两个数据库test1 test2 同一个host下面

分别在两个数据库中创建表

-- ----------------------------
-- Table structure for test_db
-- ----------------------------
DROP TABLE IF EXISTS `test_db`;
CREATE TABLE `test_db` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user` varchar(50) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

SET FOREIGN_KEY_CHECKS = 1;

执行下面的php脚本


<?php



$db1=array(
    "host"=>"localhost", //注意两个数据库在同一个host下
    "port"=>"3306",
    "user"=>"root",
    "pass"=>"",
    "db"  =>"test",
);

$conn1 = mysql_connect($db1['host'].':'.$db1['port'],$db1['user'],$db1['pass']);
mysql_select_db($db1['db'],$conn1);


$db2=array(
    "host"=>"localhost", //注意两个数据库在同一个host下
    "port"=>"3306",
    "user"=>"root",
    "pass"=>"",
    "db"  =>"test1",
);

$SQL = "INSERT INTO `test_db`(`id`, `user`) VALUES (0, 'test1');";
$conn2 = mysql_connect($db2['host'].':'.$db2['port'],$db2['user'],$db2['pass']);

mysql_select_db($db2['db'],$conn2);


mysql_query($SQL,$conn1); //注意这里选择的是1号数据库

echo mysql_error();


//执行结果应该是插入在2号数据库了

?>

执行结果插入在2号数据库了
但是明明我们选择的是1号数据库啊 ...
接下来我们把两个数据库的host改成localhost和127.0.0.1

就好了,就好了 ...

总结

php mysql_connect 在同一个host下面的多数据库切换mysql_select_db()方法不起作用


//推荐使用 
//php官方已经不推荐使用mysql_connect了
$conn1=mysqli_connect($db1['host'].':'.$db1['port'],$db1['user'],$db1['pass'],$db1['db']); 


$conn2=mysqli_connect($db2['host'].':'.$db2['port'],$db2['user'],$db2['pass'],$db2['db']); 
mysqli_query($conn1,$SQL);

php mysql_connect 在同一host下多数据库mysql_select_db()的bug .

标签:use   exists   操作   localhost   bug   connect   not   数据   ror   

原文地址:https://www.cnblogs.com/jasondayee/p/12028418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!