0

我有两个很长的清单:

$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

4 回答 4

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.';
}
于 2013-08-20T13:52:02.280 回答
1

你应该改变

mysqli_query(...);

进入

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

回显任何错误。否则错误会被忽略。

于 2013-08-20T13:53:30.073 回答
1

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

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

并且您应该按照其他人的指示使用错误处理die()方法

于 2013-08-20T14:11:09.400 回答
0

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

if(!mysqli_query($con,"INSERT INTO Contries (contries_id, contries_name, contries_code)
VALUES(NULL,'$cCode','$countryName[$i]')")){
    echo mysqli_error($con);
}
于 2013-08-20T13:52:19.953 回答