成功印刷多次

时间:2014-01-30 11:12:15

标签: php mysql

我的代码运行正常,但如果$ file有三个项目,那么成功插入成功消息后打印三次。但我需要打印一次消息。

for($i = 1; $i <= count($file); $i++){
        $insert=mysqli_query($con,"INSERT INTO song (song_name, song_url, album,artist)
        VALUES ('".current(explode(".", $file))."', '".$file."','".$album."','".$artist."')");

        if($insert){            
            print'Success';         
        }else{
            print''.mysql_error().'';           
        }
    }

5 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

$errors = array();

for ($i = 1, $n = count($file); $i <= $n; ++$i)
{

  $insert = mysqli_query($con, $query);

  if (!$insert)
  {
    $errors[] = mysqli_error($con);
  }

}

if (empty($errors))
{
  echo 'Success';
}

else
{
  echo 'Errors:<br><br>' . implode('<br>', $errors);
}

另请注意,我已将您的号码mysql_error()修正为正确的mysqli_error()功能。

答案 1 :(得分:0)

这样写:

$success = true;
for($i = 1; $i <= count($file); $i++)
{
    $insert=mysqli_query($con,"INSERT INTO song (song_name, song_url, album,artist)
    VALUES ('".current(explode(".", $file))."', '".$file."','".$album."','".$artist."')");

    if(!$insert)
    {   $success = false;
        print''.mysql_error().'';
    }
}
if($success){
    print'Success';
}

这只会打印“成功”,如果所有查询都成功,它只打印一次。

您应该考虑mysqli_*而不是mysql_*,因为由于安全问题,这些功能已被弃用。

答案 2 :(得分:0)

试试这个:(你还写了mysql_error而不是mysqli_error,这也修复了它。)

$success = 0;
for($i = 1; $i <= count($file); $i++)
{
    $insert=mysqli_query($con,"INSERT INTO song (song_name, song_url, album,artist)
    VALUES ('".current(explode(".", $file))."', '".$file."','".$album."','".$artist."')");


    if($insert)
    {
        $success = 1;
    }
    else
    {
        print''.mysqli_error($con).'';
        $success = 0;
        break;
    }


}
if($success)
print'Success';

答案 3 :(得分:0)

停止使用mysql_ *函数,不推荐使用它们。

试试这个:

$error = false;
for($i = 1; $i <= count($file); $i++){
        $insert=mysqli_query($con,"INSERT INTO song (song_name, song_url, album,artist)
        VALUES ('".current(explode(".", $file))."', '".$file."','".$album."','".$artist."')");

        if($insert){    
            $error = true;    
        }
        else{
            $error = false;
            print''.mysql_error().'';    
        } 
    }
if($error) {
    print 'Success';
}

答案 4 :(得分:0)

以这种方式使用

function abc(){
    $flag = "";    
    for($i = 1; $i <= count($file); $i++)
        {
            $insert=mysqli_query($con,"INSERT INTO song (song_name, song_url, album,artist)
            VALUES ('".current(explode(".", $file))."', '".$file."','".$album."','".$artist."')");
        if($insert)
        {
          $flag = true;
        }
        else
        {
        print''.mysql_error().''; return;
        }
    }
    if($flag == true){
       print 'success';
    }
}