我一直在解決與這一段時間,我不熟悉PHP語法,這裏是我的代碼:PHP錯誤的參數計數的mysql_query() - 可能的語法錯誤
$eventArray = array($this->ReturnLastRecordId() + 1, $managerid, $title, $description, $category, $address, $location, $startdate, $starttime, $enddate, $endtime, $price, $endofticketdate, $totalseats, $totalseats);
$sql = "INSERT INTO event (eventid, managerid, title, description, category, address, location, startdate, starttime, enddate, endtime, price, endofticketdate, totalseats, totalseats)";
$data->StoreData($eventArray, $sql);
在功能:
public function StoreData($dataArray, $sqlquery)
{
include 'config.php';
$i = count($dataArray);
echo $i;
switch ($i) {
case 15:
mysql_query($sqlquery . "VALUES (" . '$arraydata[0]' , '$arraydata[1]', '$arraydata[2]', '$arraydata[3]', '$arraydata[4]', '$arraydata[5]', '$arraydata[6]', '$arraydata[7]', '$arraydata[8]', '$arraydata[9]', '$arraydata[10]', '$arraydata[11]', '$arraydata[12]', '$arraydata[13]', '$arraydata[14]' . ")", $con) or die (mysql_error());
mysql_close($con);
break;
}
}
很顯然,我已經檢查的參數多的次數,包括數據庫,但還是參數個數拋出:(。
逗號應該是字符串內。你可以從突出顯示他們在錯誤的地方看到。 – pt2ph8 2011-03-20 21:42:53
爲什麼有2x'totalseats'列?另一個嚴重的問題是'eventid'不是一個自動遞增的字段。按照你所做的方式增加'eventid'會引發競爭條件,即同時運行的兩個查詢可能會重疊並寫入錯誤的'eventid'。 – 2011-03-20 21:44:21
準備好的陳述真的很麻煩,沒有人想要使用它們嗎? – cHao 2011-03-20 21:47:02