2013-08-20 3 views
0

У меня есть два очень длинный список:PHP вставить оператор не возвращает никаких ошибок, но не вставляет

$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

Что сказал @BenFortune, также вы хотите набирать «страны» как «contries» взаимозаменяемо в запросе? –

+0

Возможно, это опечатка, страны континентов. –

ответ

1

Ваших строковые значения всегда должны быть заключены в кавычки

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

, а также вы должны использовать обработку в соответствии с инструкциями другими, используя метод die()

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.'; 
} 
0

Необходимо проверить наличие ошибок в коде.

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

Вы должны изменить

mysqli_query(...); 

в

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

Повторяя любые ошибки. В противном случае ошибки молча игнорируются.