Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php使用多个数据库?_Php_Mysql - Fatal编程技术网

如何使用php使用多个数据库?

如何使用php使用多个数据库?,php,mysql,Php,Mysql,我在网上读过多个问题,包括这个,但没有一个是为我工作的。这是我的密码: <?php $conn1 = mysql_connect("localhost","root","passw0rd") or die(mysql_error()); $conn2 = mysql_connect("localhost","root","passw0rd") or die(mysql_error()); mysql_select_db("asteriskcdrdb",$conn1); mysql_se

我在网上读过多个问题,包括这个,但没有一个是为我工作的。这是我的密码:

<?php

$conn1 = mysql_connect("localhost","root","passw0rd") or die(mysql_error());
$conn2 = mysql_connect("localhost","root","passw0rd") or die(mysql_error());

mysql_select_db("asteriskcdrdb",$conn1);
mysql_select_db("pj8v2",$conn2);

$query = "SELECT * FROM cdr";
$result = mysql_query($query,$conn1);

var_dump($result);

$query2 = "SELECT * FROM tb_did_avalaible";
$result2 = mysql_query($query2,$conn2);

var_dump($result2);

?>


当我var_转储结果时,它返回false。这里有什么问题?谢谢。

对不起,我刚刚解决了这个问题。如果使用相同的连接参数,则必须在连接参数中添加true

$conn1 = mysql_connect("localhost","root","passw0rd") or die(mysql_error());
$conn2 = mysql_connect("localhost","root","passw0rd",true) or die(mysql_error());

不要使用mysql连接器,请使用mysqli。它比mysql更安全

代码应该是

$conn1  = new mysqli("localhost","user","password","db1");
$conn2  = new mysqli("localhost","user","password","db2");

$query1 = "select * from table1";
$query2 = "select * from table2";

echo $query1 . "<br />";
echo $query2 . "<br />";

$rs1 = $conn1->query($query1);
$rs2 = $conn2->query($query1);
$conn1=newmysqli(“localhost”、“user”、“password”、“db1”);
$conn2=newmysqli(“localhost”、“user”、“password”、“db2”);
$query1=“从表1中选择*”;
$query2=“从表2中选择*”;
echo$query1。“
”; echo$query2。“
”; $rs1=$conn1->query($query1); $rs2=$conn2->query($query1);

还要检查查询的结果是否正确。大多数情况下,错误出现在查询中,而不是语法中

如果两个数据库都位于同一个mysql服务器上,并且您作为唯一用户访问它们,则不需要两个连接

您也不需要选择数据库。
指定表时,只需使用数据库名称作为前缀:

<?php

mysql_connect("localhost","root","pass") or die(mysql_error());

$query = "SELECT * FROM asteriskcdrdb.cdr";
$result = mysql_query($query)or die(mysql_error());
var_dump($result);

$query2 = "SELECT * FROM pj8v2.tb_did_avalaible";
$result2 = mysql_query($query2)or die(mysql_error());
var_dump($result2);

?>

代码中真正的问题是:只能有一个活动DB,它应该是这样工作的:

<?php

$conn1 = mysql_connect("localhost","root","passw0rd") or die(mysql_error());   
$conn2 = mysql_connect("localhost","root","passw0rd",true) or die(mysql_error());

mysql_select_db("asteriskcdrdb",$conn1);
$query = "SELECT * FROM cdr";
$result = mysql_query($query,$conn1);

var_dump($result);


mysql_select_db("pj8v2",$conn2);
$query2 = "SELECT * FROM tb_did_avalaible";
$result2 = mysql_query($query2,$conn2);

var_dump($result2);

?>


虽然不需要2个连接,但您可以选择使用相同连接的两个DB

您是否尝试过使用echo mysql_error($conn1)检查错误?您是否检查了
$conn1
$conn2
的值?每次调用
mysql
失败后,
mysql\u error
的输出是什么?谢谢您的帮助。我只是想办法解决问题。我的错误是没有早点意识到这一点。发布你的更新代码,我想你只需要
mysql\u选择\u db(“pj8v2”,$conn2)
在第一次
mysql\u查询之后
我认为在你的情况下没有必要打开2个连接。如果你打算建议放弃一个连接选项而选择另一个,那么它真的应该是PDO\u mysql