Céd*_*ard 0 php mysql database-connection
对于一个项目,我需要打开一个Mysql连接,关闭它,然后让旧的遗留代码运行.遗留代码具有自己的连接,只需在没有resource参数的情况下调用mysql_query($ sql).
我怎么处理这个?我可以将Mysql连接设置为全局连接吗?我必须重新执行mysql_connect()语句吗?遗留代码不能立即重构.
这是一个简短的演示
<?php
function show()
{
$a = mysql_fetch_array(mysql_query('select database()'));
echo $a[0] . "<br>";
}
$conn = mysql_connect('localhost', 'root', '', TRUE);
mysql_select_db('dredd');
show();
mysql_connect('localhost', 'root', '', TRUE);
mysql_select_db('afup');
show();
mysql_close();
$a = mysql_fetch_array(mysql_query('select database()', $conn));
echo $a[0] . "<br>";
show();
Run Code Online (Sandbox Code Playgroud)
第一个选择是ok,第二个是第二个,第三个是ok,因为它有ressource,但第四个打破了("拒绝访问用户'ODBC'@'localhost'(使用密码:NO)").
此致,塞德里克
如果你没有指定连接,它将使用最后创建的连接,所以如果你先关闭另一个连接就应该没问题,例如
//open your db connection
$conn1 = mysql_connect();
mysql_query($sql, $conn1);
mysql_close($conn1);
//open legacy code's db connection
$conn = mysql_connect();
//run legacy code
Run Code Online (Sandbox Code Playgroud)
如果您遇到问题,可能更容易使用PDO或mysqli进行第二次连接,因为您知道它们在不修改遗留代码的情况下绝对是分开的.
| 归档时间: |
|
| 查看次数: |
601 次 |
| 最近记录: |