当从php建立新的mysql连接时,如何执行命令?
$con=mysqli_connect("localhost","root","","gts");
在上面的例子中,我需要传递set sql命令:
sql_log_bin = 0
这将确保此连接执行的命令不会写入二进制日志。我有另一个“正常”连接,它将像往常一样工作,并将所有命令写入二进制日志。
换句话说,我需要2个与mysql的连接,其中一个禁用二进制日志记录。我应该能够决定使用哪一个。它是如何在PHP中完成的?
答案 0 :(得分:2)
首先创建两个连接。
$con1=mysqli_connect("localhost","root","","gts");
$con2=mysqli_connect("localhost","root","","gts");
然后在其中一个上禁用你的binlog
mysqli_query($con1, "SET sql_log_bin = 0");
答案 1 :(得分:1)
由于您需要两个具有不同参数的连接,因此只需建立两个连接:
$con1 = mysqli_connect("localhost","root","","gts");
$con2 = mysqli_connect("localhost","root","","gts");
然后看看mysqli_options
函数:
bool mysqli_options ( mysqli $link , int $option , mixed $value );
在你的情况下,它会像
mysqli_options ( $con1 , MYSQLI_INIT_COMMAND , "SET sql_log_bin = 0" );
在连接1上关闭此二进制日志。
最后,当您需要运行任何查询时,如果您不需要二进制日志记录,请使用$con1
,如果您需要,请使用$con2
。