我以前从未使用过 PDO,但最终决定将安全性放在首位,我必须从熟悉的内置 mysql 语句切换到更安全的语句。dbconn.php 中的 db_connect() 函数工作得很好,几乎是从 PDO 教程中复制和粘贴的,并成功地使用多个 SELECT 语句进行了测试。
include "dbconn.php";
db_connect();
//INSERT INTO `a4331098_VAtest`.`VA_GPS` (`gID` , 'gtruck' , `gLat` , `gLong` , `gAlt` , `gTime`) VALUES (NULL , '434' , '47.558', '-76.557', '543', '0111588448');
$pTruck = $_POST['gTruck'];
$pLat = $_POST['gLat'];
$pLong = $_POST['gLong'];
$pAlt = $_POST['gAlt'];
$pTime = $_POST['gTime'];
//echo $pTruck . "<br />" . $pLat . "<br />" . $pLong . "<br />" . $pAlt . "<br />" . $pTime . "<br /><br />";
$stmt = $dbconn->prepare("INSERT INTO a4331098_VAtest.VA_GPS VALUES (NULL , ':fTruck' , ':fLat' , ':fLong' , ':fAlt' , ':fTime')");
$stmt->execute(array(':fTruck' => $pTruck , ':fLat' => $pLat , ':fLong' => $pLong , ':fAlt' => $pAlt , ':fTime' => $pTime));
$affected_rows = $stmt->rowCount();
echo $affected_rows;
我知道正确的值被传递给脚本(注释掉的回声告诉我)但由于某种原因 $affected_rows 一直返回 0。数据库的结构是 gID(被传递为 NULL,因为它自动递增)、gTruck、gLat ,gLong,gAlt,gTime。我究竟做错了什么?