Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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_Database - Fatal编程技术网

Php 多个数据库连接冲突

Php 多个数据库连接冲突,php,mysql,database,Php,Mysql,Database,我在应用程序中使用两个数据库连接。数据库连接如下所示 $allrights = @mysql_connect(DB_SERVER,DB_USER,DB_PASS); if (!$allrights) { //die("Database connection failed: " . mysql_error()); echo "Check ServerHost,Username,Password Of the DataBase<br/>"; } // 2. Select

我在应用程序中使用两个数据库连接。数据库连接如下所示

$allrights = @mysql_connect(DB_SERVER,DB_USER,DB_PASS);
if (!$allrights) {
    //die("Database connection failed: " . mysql_error());
    echo "Check ServerHost,Username,Password Of the DataBase<br/>";
}
// 2. Select a database to use 
$db_select = @mysql_select_db(DB_NAME,$allrights);
if (!$db_select) {
    //die("Database selection failed: " . mysql_error());
    echo "Incorrect DataBase Name";
}


// 1. Create a database connection
$readonly = @mysql_connect(DB_SERVER,READONLY_DB_USER,READONLY_DB_PASS);
if (!$readonly) {
    //die("Database connection failed: " . mysql_error());
    echo "Check ServerHost,Readonly-Username,Password Of the DataBase<br/>";
}
// 2. Select a database to use 
$db_select = @mysql_select_db(DB_NAME,$readonly);
if (!$db_select) {
    //die("Database selection failed: " . mysql_error());
    echo "Incorrect DataBase Name";
}
$readonly = @mysql_connect(DB_SERVER,READONLY_DB_USER,READONLY_DB_PASS, true);
$allrights=@mysql\u connect(DB\u服务器、DB\u用户、DB\u密码);
如果(!$allrights){
//die(“数据库连接失败:”.mysql_error());
echo“检查数据库的服务器主机、用户名和密码
”; } // 2. 选择要使用的数据库 $db\u select=@mysql\u select\u db(db\u NAME,$allrights); 如果(!$db\u选择){ //die(“数据库选择失败:”.mysql_error()); 回显“错误的数据库名称”; } // 1. 创建数据库连接 $readonly=@mysql\u connect(数据库服务器、只读数据库用户、只读数据库通行证); 如果(!$readonly){ //die(“数据库连接失败:”.mysql_error()); echo“检查服务器主机,只读用户名,数据库密码
”; } // 2. 选择要使用的数据库 $db\u select=@mysql\u select\u db(db\u NAME,$readonly); 如果(!$db\u选择){ //die(“数据库选择失败:”.mysql_error()); 回显“错误的数据库名称”; }
但是,当查询所有内容时

$query=mysql_query("SELECT * FROM <tablename>");
$query=mysql\u查询(“选择*FROM”);

两个连接都引用同一个数据库。查询数据时,哪些连接实际调用?

使用如下查询:

$query=mysql_query("SELECT * FROM <tablename>", $readonly); //the last parameter is the connection variable
$query=mysql\u查询(“选择*FROM”,$readonly)//最后一个参数是连接变量
注意:您必须使用mysqli,这是从
PHP
MySQL
对话的正确方式,因为mysqli将很快被弃用


警告:作为手帕웃 Panky提到使用
@
将拒绝使用警告,并且在连接失败、缺少数据库或数据库出现其他问题时,您最终不会收到任何警告

使用如下查询:

$query=mysql_query("SELECT * FROM <tablename>", $readonly); //the last parameter is the connection variable
$query=mysql\u查询(“选择*FROM”,$readonly)//最后一个参数是连接变量
注意:您必须使用mysqli,这是从
PHP
MySQL
对话的正确方式,因为mysqli将很快被弃用


警告:作为手帕웃 Panky提到使用
@
将拒绝使用警告,并且在连接失败、缺少数据库或数据库出现其他问题时,您最终不会收到任何警告

要指定连接,请将其作为参数传递,例如:

$query=mysql_query("SELECT * FROM <tablename>", $allrights);
$query=mysql\u query(“选择*FROM”,$allrights);
如果您不知道发生了什么,可以在以下文档中找到:

如果未指定链接标识符,则假定由
mysql\u connect()
打开的最后一个链接

另外,请注意红色背景上的大警告:

从PHP5.5.0开始,此扩展已被弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展


要指定连接,请将其作为参数传递,例如:

$query=mysql_query("SELECT * FROM <tablename>", $allrights);
$query=mysql\u query(“选择*FROM”,$allrights);
如果您不知道发生了什么,可以在以下文档中找到:

如果未指定链接标识符,则假定由
mysql\u connect()
打开的最后一个链接

另外,请注意红色背景上的大警告:

从PHP5.5.0开始,此扩展已被弃用,将来将被删除。相反,应该使用MySQLi或PDO_MySQL扩展


使用多个数据库连接时,需要将true作为第四个可选参数(new_link)传递,如下所示

$allrights = @mysql_connect(DB_SERVER,DB_USER,DB_PASS);
if (!$allrights) {
    //die("Database connection failed: " . mysql_error());
    echo "Check ServerHost,Username,Password Of the DataBase<br/>";
}
// 2. Select a database to use 
$db_select = @mysql_select_db(DB_NAME,$allrights);
if (!$db_select) {
    //die("Database selection failed: " . mysql_error());
    echo "Incorrect DataBase Name";
}


// 1. Create a database connection
$readonly = @mysql_connect(DB_SERVER,READONLY_DB_USER,READONLY_DB_PASS);
if (!$readonly) {
    //die("Database connection failed: " . mysql_error());
    echo "Check ServerHost,Readonly-Username,Password Of the DataBase<br/>";
}
// 2. Select a database to use 
$db_select = @mysql_select_db(DB_NAME,$readonly);
if (!$db_select) {
    //die("Database selection failed: " . mysql_error());
    echo "Incorrect DataBase Name";
}
$readonly = @mysql_connect(DB_SERVER,READONLY_DB_USER,READONLY_DB_PASS, true);
您还需要提供链接标识符

引自PHP手册

如果使用相同的参数对mysql_connect()进行第二次调用,则不会建立新链接,而是返回已打开链接的链接标识符。new_link参数修改此行为,并使mysql_connect()始终打开新链接,即使以前使用相同的参数调用过mysql_connect()。在SQL安全模式下,忽略此参数


注意:听取其他人关于使用mysqli_u*

的建议当使用多个数据库连接时,您需要将true作为第四个可选参数(new_link)传递,如下所示

$allrights = @mysql_connect(DB_SERVER,DB_USER,DB_PASS);
if (!$allrights) {
    //die("Database connection failed: " . mysql_error());
    echo "Check ServerHost,Username,Password Of the DataBase<br/>";
}
// 2. Select a database to use 
$db_select = @mysql_select_db(DB_NAME,$allrights);
if (!$db_select) {
    //die("Database selection failed: " . mysql_error());
    echo "Incorrect DataBase Name";
}


// 1. Create a database connection
$readonly = @mysql_connect(DB_SERVER,READONLY_DB_USER,READONLY_DB_PASS);
if (!$readonly) {
    //die("Database connection failed: " . mysql_error());
    echo "Check ServerHost,Readonly-Username,Password Of the DataBase<br/>";
}
// 2. Select a database to use 
$db_select = @mysql_select_db(DB_NAME,$readonly);
if (!$db_select) {
    //die("Database selection failed: " . mysql_error());
    echo "Incorrect DataBase Name";
}
$readonly = @mysql_connect(DB_SERVER,READONLY_DB_USER,READONLY_DB_PASS, true);
您还需要提供链接标识符

引自PHP手册

如果使用相同的参数对mysql_connect()进行第二次调用,则不会建立新链接,而是返回已打开链接的链接标识符。new_link参数修改此行为,并使mysql_connect()始终打开新链接,即使以前使用相同的参数调用过mysql_connect()。在SQL安全模式下,忽略此参数


注意:听取其他人关于使用mysqli的建议*

是否尝试过@mysql\u关闭($db\u连接);你试过这个吗@mysql\u关闭($db\u连接);很好,不过OP使用的是
mysql.*
。我们知道他应该使用
mysqli
,但这对他没有帮助。我知道它已经被弃用了。但是我们现有的应用程序可以有数千个mysql_query()。我无法更改现有的流。我认为还需要告诉OP避免使用那些
@
,它们一点也没有帮助,除非OP使用的是
mysql.*
。我们知道他应该使用
mysqli
,但这对他没有帮助。我知道它已经被弃用了。但是我们现有的应用程序可以有数千个mysql_query()。我无法更改现有的流。我认为还需要告诉OP避免使用那些
@
,它们根本没有帮助。这是回答
在查询数据时哪些连接实际调用的答案?
这是回答
在查询数据时哪些连接实际调用的答案?