2014-04-22 58 views
0

我有這樣的代碼中插入一個新行到MySQL數據庫使用PDO:PDO插入查詢不工作的整數

$query = INSERT INTO asset_positions (pos_asset_id, pos_latitude, pos_longitude, pos_timestamp) VALUES (:pos_asset_id, :pos_latitude, :pos_longitude, :pos_timestamp) 
$statement = $pdo->prepare($query); 
$array = [':pos_asset_id' => 1, ':pos_latitude' => -8.5, ':pos_longitude' => 125.5, ':pos_timestamp' => 1398160487]; 
$statement->execute($array); 
echo $pdo->lastInsertId(); 

查詢運行沒有表現出任何差錯。新插入的行ID被回顯。但是,當我查看數據庫時,它只會插入緯度,經度和時間戳。新插入的行中的pos_asset_id字段爲空。

難道有人指出問題在哪裏?沒有顯示錯誤消息。我一直試圖解決這個問題幾個小時沒有用。

Ps。這是我第一次使用PDO,請耐心等待。謝謝。

編輯

解決了!我沒有注意到asset_positions.pos_asset_idasset.asset_id之間存在FK關係。一旦我刪除了這種關係限制,INSERT現在可以正常工作,pos_asset_id值被插入到記錄中。

無論如何,謝謝大家! :)

+4

校驗字段類型。 PDO無事可做 –

+0

@YourCommonSense,完全同意你的看法。 只需檢查您的數據庫字段類型。 – KinjalMistry

+0

pos_asset_id的字段類型是int(11)。我嘗試將字段類型更改爲varchar(11),但它仍未插入。 – shinega

回答

0

嘗試運行錯誤捕獲,它會讓你更好地瞭解發生了什麼。

try { 
    $stmt->execute(); 
} catch (PDOException $p) { 
    echo $p->getMessage(); 
} catch (Exception $e) { 
    echo $e->getMessage(); 
} 

但是你的常識和user3540050是正確的......這是一列相關的問題可能

+0

嘗試過,但它沒有顯示任何東西。 – shinega