永发信息网

php 读取文件被执行2次

答案:2  悬赏:80  手机版
解决时间 2021-01-04 17:29
  • 提问者网友:太高姿态
  • 2021-01-03 20:17
<?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 这样的顺序
最佳答案
  • 五星知识达人网友:天凉才是好个秋
  • 2021-01-03 21:01
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执行几次 你的程序就要执行几次,你的明白
全部回答
  • 1楼网友:忘川信使
  • 2021-01-03 22:38
//被调用的文件如果不存在会报错,脚本中断。 //被调用文件在当前脚本中可重复执行。 require(文件路径); //被调用的文件如果不存在会报错,脚本中断。 //被调用文件在当前脚本中仅执行一次。 require_once(文件路径); //被调用的文件如果不存在不会报错,脚本继续。 //被调用文件在当前脚本中可重复执行。 include(文件路径); //被调用的文件如果不存在不会报错,脚本继续。 //被调用文件在当前脚本中仅执行一次。 include_once(文件路径); 这4个函数均可引用php文件。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯