2013-07-12 131 views
1

得到了以下代碼。所有的值都通過javascript獲得,然後通過ajax發送。最後的var_dump($ array)工作並顯示所有正確的值。所以他們都正確地通過。 try方法的捕獲錯誤也永遠不會彈出。這些值沒有被插入到sql表中。怎麼了? 在此先感謝。PDO/SQL插入不工作

$name = $_GET['name']; 
$category = $_GET['category']; 
$subCategory = $_GET['subCategory']; 
$date = $_GET['date']; 
$address = $_GET['address']; 
$city = $_GET['city']; 
$state = $_GET['state']; 
$host = $_GET['host']; 
$imagePath = $_GET['imagePath']; 
$info = $_GET['info']; 

//turn into array 
$array = array(); 
$array[0]=$name; 
$array[1]=$category; 
$array[2]=$subCategory; 
$array[3]=$date; 
$array[4]=$address; 
$array[5]=$city; 
$array[6]=$state; 
$array[7]=$host; 
$array[8]='j';//$imagePath; 
$array[9]=$info; 

try { 
    $con = new PDO('mysql:host=localhost;dbname=test'); 

$insert = $con->prepare(" INSERT INTO create 
(name,category,subCategory,date,address,city,state,host,imagePath,info) 
VALUES (?,?,?,?,?,?,?,?,?,?) "); 
$insert->execute($array); 
} 

catch(PDOException $e) { //try 
    echo 'error'; 
    //echo 'ERROR: ' . $e->getMessage(); 
} 

var_dump($array); 

回答

3

create是MySQL中的保留字,所以你需要引用它的反引號:

INSERT INTO `create` ... 

爲了有PDO拋出異常,你需要添加你打開你連接後:

$con = new PDO('mysql:host=localhost;dbname=test'); 
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

順便說一句,我假設你用用戶名和密碼登錄數據庫(PDO constructor的第二個和第三個參數)...

+0

謝謝,不知道'創造'的東西 – seamus