2013-08-20 42 views
0

我有兩個很長的名單:PHP INSERT語句不返回任何錯誤,但不插入

$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++; 
} 

當我運行這個我得到沒有erros,但沒有行已經插入數據庫如何來?

+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)); 

爲了呼應出任何錯誤。否則,錯誤會被忽略。