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避免使用那些@
,它们根本没有帮助。这是回答在查询数据时哪些连接实际调用的答案?
这是回答在查询数据时哪些连接实际调用的答案?