PHP插入语句不返回任何错误但不插入

时间:2013-08-20 13:49:16

标签: php sql

我有两个很长的名单:

$countryCode 

$countryName

要插入这些列表,我创建了以下循环:

   $i = 0;

$con=mysqli_connect("localhost","root","root","system_bloglic_com_test");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

foreach($countryCode as $cCode){
mysqli_query($con,"INSERT INTO Contries (contries_id, contries_name, contries_code)
VALUES(NULL,$cCode,$countryName[$i])");
$i++;
}

当我运行这个时,我没有得到任何错误,但是数据库中没有插入任何行?

4 个答案:

答案 0 :(得分:2)

你检查了mysqli_error();它将帮助您找到确切的错误。 如果发生错误,则返回FALSE。在这种情况下,mysqli_error()会为您提供有关错误的更多信息。

$result = mysqli_query($con,"INSERT INTO Contries (contries_id, contries_name, contries_code)
VALUES(NULL,$cCode,$countryName[$i])");
if ( false===$result ) {
  printf("error: %s\n", mysqli_error($con));
}
else {
  echo 'done.';
}

答案 1 :(得分:1)

你应该改变

mysqli_query(...);

进入

mysqli_query(...) or die("error in query: " . mysqli_error($con));

回应任何错误。否则会忽略错误。

答案 2 :(得分:1)

您的字符串值应始终用引号括起来

mysqli_query($con,"INSERT INTO Contries (contries_id, contries_name, contries_code)
VALUES(NULL,'{$cCode}','{$countryName[$i]}')");

并且您应该按照其他人使用die()方法

的指示使用错误处理

答案 3 :(得分:0)

您需要检查代码中的错误。

if(!mysqli_query($con,"INSERT INTO Contries (contries_id, contries_name, contries_code)
VALUES(NULL,'$cCode','$countryName[$i]')")){
    echo mysqli_error($con);
}