我正试图从一个MySQL数据库中获取5100行到另一个数据库。但是,该脚本似乎只能在1300左右获取并结束。
该脚本有两个连接,每个数据库一个。代码如下:
$result = mysqli_query($con_remote,"SELECT * FROM product_images");
while($row = $result->fetch_assoc())
{
//Insert
mysqli_query($con_local,"INSERT INTO product_images (id, filename,
product_id) VALUES('$row[product_image_id]', '$row[product_image_filename]',
'$row[fk_product_id]')");
}
为了避免执行超时,我还在脚本开始处添加了ini_set('max_execution_time', 800);
。我该如何改进/更改才能获得全部5100行?
编辑:我最终导出了远程数据库,并将其导入到本地计算机,然后更改列名。
答案 0 :(得分:1)
请尝试以下操作。请参阅随附的代码。 这很简单,无需检索while或for循环
ini_set('max_execution_time', 1200);
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
mysqli_select_db($conn, 'db1');
// Create connection for second db
$conn2 = new mysqli($servername, $username, $password);
// Check connection
if ($conn2->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully for Second";
mysqli_select_db($conn2, 'db2');
echo '<br>';
$sql = 'INSERT INTO db1.table1 (ID, NAME)
SELECT ID, NAME FROM db2.table1';
if (mysqli_query($conn2, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn2);
}
mysqli_close($conn2);
mysqli_close($conn);
答案 1 :(得分:0)
在您的代码上方插入此php函数:
ini_set('max_execution_time', 1200);
set_time_limit(int $seconds);
答案 2 :(得分:0)
您可以将脚本执行时间设置为零,这意味着脚本可以永远运行。在脚本的开头添加以下内容:
ini_set('max_execution_time', 0);