我有一个超过134675值的数组,我需要将它们插入我的MysqL表.我知道使用PHP和MysqL数据插入所需的所有东西.是否有一种快速方法可以让我在30-60秒内在远程服务器上插入所有这些值?因为当我使用foreach方法尝试它时,页面会超时.远程服务器不允许DB连接持续超过60秒.我不知道为什么.所以请帮助我快速逻辑.
这是我试过的一些代码:
foreach($array as $value)
{
$sql="insert into collected values('".$value."')";
$res=MysqL_query($sql);
//then some extra code.
}
注意
我在服务器上没有这么多的访问权限.我的数据库帐户只能插入值,只能插入值.它对MysqL DB的约束.我不能使用CSV或任何其他东西.
最佳答案
您可以在循环中包含
原文链接:https://www.f2er.com/mysql/434216.htmlmysql_ping()
函数.此功能检查以确保连接已打开,如果不是,则重新连接.
使用您自己的示例,您可以执行以下操作:
foreach($array as $value) {
MysqL_ping($dbconn);
$sql="insert into collected values('".$value."')";
$res=MysqL_query($sql);
//then some extra code.
}
编辑:应该注意的是,根据文档,在MysqL 5.0.14之后,PHP不会自动重新连接.如果你使用更新版本的MysqL,你将不得不放入自己的连接逻辑,也许这样(我还没有测试过):
function check_dbconn($connection) {
if (!MysqL_ping($connection)) {
MysqL_close($connection);
$connection = MysqL_connect('server','username','password');
MysqL_select_db('db',$connection);
}
return $connection;
}
foreach($array as $value) {
$dbconn = check_dbconn($dbconn);
$sql="insert into collected values('".$value."')";
$res=MysqL_query($sql,$dbconn);
//then some extra code.
}