2016-10-22 12 views
-2

我把这个insert.php作为我的代码的一部分,它的工作原理与我想要的完全一样,除了echo文本被迭代直到它出现循环。 例如,如果插入3行,我会将消息显示为“插入插入”。如何在mysql的while循环下获取只有一个成功或失败消息插入查询

有没有办法在那里我能得到更明确的结果,如插入

3行或没有插入3行。 有人可以帮我吗?

<?php 
DEFINE ('DB_USER', 'root'); 
DEFINE ('DB_PSWD', ''); 
DEFINE ('DB_HOST', 'localhost'); 
DEFINE ('DB_NAME', 'testdb'); 
$dbcon = mysqli_connect(DB_HOST, DB_USER, DB_PSWD, DB_NAME); 
if(!$dbcon) 
{ 
    echo 'not connected to server'; 
} 
if(!mysqli_select_db($dbcon,'testdb')) 
{ 
    echo 'database not selected'; 
} 

$rowIndex = 0; 
$max = filter_input(INPUT_POST, 'max'); 
while ($rowIndex < $max) {  
$date = filter_input(INPUT_POST, 'date'.$rowIndex); 
$user = filter_input(INPUT_POST, 'user'.$rowIndex); 
$sql = "INSERT INTO TABLE (DATE,USER) VALUES ('$date', '$user')"; 
if(!mysqli_query($dbcon,$sql)) 
{ 
    echo 'not inserted'; 
} 
else 
{ 
    echo 'inserted'; 
} 
$rowIndex++; 
} 

    ?> 
+0

当遇到第一个错误时停止循环。循环后打印消息。 –

+0

感谢您的回复@gordon,假设没有错误发生,我怎样才能让插入后发生的一条消息显示为“3行插入”。 –

回答

0

这取决于您是否喜欢在出现问题或继续之后停止循环。这是循环停止代码的结尾:

if(!mysqli_query($dbcon,$sql)) 
    { 
     echo 'not inserted'; 
     $isInserted = false; 
     break; // to stop looping 
    } 
    //remove else 
    $rowIndex++; 
} 
if($isInserted!==false){ 
    echo 'inserted'; 
}