php 读取文件被执行2次
<?php$server='localhost';$username='zenghx';$password='zeng0599';$path='.\update_sql\...
<?php
$server = 'localhost';
$username = 'zenghx';
$password = 'zeng0599';
$path = '.\update_sql\\';
$dir = $path;
$i=0;
if(is_dir($dir)){
if($dh=opendir($dir)){
while(false!==( $filename=readdir($dh))){
if($filename!="." && $filename!=".."){
$i++;
$file =$path.$filename;
print "<br>".$file."<br>";
$filesql = file_get_contents($file);
//echo $filesql."<br><br>";
$conn = mysql_connect($server,$username,$password);
$selectdb = mysql_select_db("dbtest",$conn) or die ("无法选择数据库!".mysql_error());
$segment = explode(";",$filesql);
foreach($segment as $current){
$sql = $current;
echo $current;
$revertsql = mysql_query($sql)or die("<br>数据更新失败".mysql_error());
if ($revertsql) {
echo "还原成功<br><br>";
}
}
}
}
}
}
fclose($filename);
?>
有3个SQL文件 SQL1 SQL2 SQL3
结果输出到MYSQL里 SQL1被执行了2次 删除SQL1 SQL2也被执行了2次
如果把mysql_query注释掉 又只执行一次 求解释,或者修改我的代码 谢谢
hzl289894452 谢谢你的回答 你没理解我的意思 我的要求是吧sql1 sql2 sql3 一次按照顺序执行 因为文件里的是字符串形式,自然要放在foreach里面 要遍历出来输出 你说的foreach执行几次 那也应该按照sql1 sql2 sql3的顺序执行 不应该是执行sql1 sql1 sql2 sql3 这样的顺序 展开
$server = 'localhost';
$username = 'zenghx';
$password = 'zeng0599';
$path = '.\update_sql\\';
$dir = $path;
$i=0;
if(is_dir($dir)){
if($dh=opendir($dir)){
while(false!==( $filename=readdir($dh))){
if($filename!="." && $filename!=".."){
$i++;
$file =$path.$filename;
print "<br>".$file."<br>";
$filesql = file_get_contents($file);
//echo $filesql."<br><br>";
$conn = mysql_connect($server,$username,$password);
$selectdb = mysql_select_db("dbtest",$conn) or die ("无法选择数据库!".mysql_error());
$segment = explode(";",$filesql);
foreach($segment as $current){
$sql = $current;
echo $current;
$revertsql = mysql_query($sql)or die("<br>数据更新失败".mysql_error());
if ($revertsql) {
echo "还原成功<br><br>";
}
}
}
}
}
}
fclose($filename);
?>
有3个SQL文件 SQL1 SQL2 SQL3
结果输出到MYSQL里 SQL1被执行了2次 删除SQL1 SQL2也被执行了2次
如果把mysql_query注释掉 又只执行一次 求解释,或者修改我的代码 谢谢
hzl289894452 谢谢你的回答 你没理解我的意思 我的要求是吧sql1 sql2 sql3 一次按照顺序执行 因为文件里的是字符串形式,自然要放在foreach里面 要遍历出来输出 你说的foreach执行几次 那也应该按照sql1 sql2 sql3的顺序执行 不应该是执行sql1 sql1 sql2 sql3 这样的顺序 展开
1个回答
展开全部
foreach($segment as $current){
$sql = $current;
echo $current;
$revertsql = mysql_query($sql)or die("<br>数据更新失败".mysql_error());
if ($revertsql) {
echo "还原成功<br><br>";
}
}
以上代码 请您详细阅读, foreach 数对于数组的条件循环语句,你的mysql_query()在foreach里面,也就是说foreach执行几次 你的程序就要执行几次,你的明白
$sql = $current;
echo $current;
$revertsql = mysql_query($sql)or die("<br>数据更新失败".mysql_error());
if ($revertsql) {
echo "还原成功<br><br>";
}
}
以上代码 请您详细阅读, foreach 数对于数组的条件循环语句,你的mysql_query()在foreach里面,也就是说foreach执行几次 你的程序就要执行几次,你的明白
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询