2013-07-30 135 views
0

我是PHP新手,所以請耐心等待。PHP/SQL語法錯誤1064

這是進入一個預約表上我的網站代碼:

http://pastie.org/8190189

這是當我輸入數據到對網站的前端的形式,我得到的錯誤:

http://pastie.org/8190194

我一直在它工作了幾個小時,但我不能得到任何地方。

我想這個問題可能跟:

SELECT u_id FROM `joom_hl_puser_role` WHERE pid = '1' 

表puser_role剛剛的Joomla用戶連接到他們可以在網站上管理的酒店。 (我想輸入酒店經理的joomla用戶號碼)。

但我確定該語法是正確的。

感謝您的幫助。

回答

1

的問題是你的時間的使用();

TIME需要傳遞一個參數。

mysql> select TIME(); 
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1 

它更改爲

TIME(NOW()) 

從MySQL的手冊TIME

TIME(表達式)

提取物的時間或日期時間表達式expr和 的時間部分以字符串形式返回它。

該函數對於基於語句的複製是不安全的。如果在 binlog_format設置爲STATEMENT時使用此功能,將會記錄一條警告消息,從 開始使用MySQL 5.5.1。 (Bug#47995)

mysql> SELECT TIME('2003-12-31 01:02:03'); 
     -> '01:02:03' 

mysql> SELECT TIME('2003-12-31 01:02:03.000123'); 
     -> '01:02:03.000123' 
1

您正在插入「雙引號」中的TIME()和NOW()函數。試試chaing它看起來像這樣

$query = "INSERT INTO `#__chbookings_bookings` (`id` ,`company` ,`firstname`,`lastname`, ,`email` ,`reference_number` , `transactionid` ,`invoice_number` , `property` ,`payment_type` ,`people` ,`phonenumber` ,`checkin_date` ,`checkout_date`,`room_type` , `status` , `total_amount` ,`amount_paid` ,`pending_amount`, `date_booked`,`last_updated`, `comments`) VALUES (NULL , '".$user_id."','".$data['firstName']."', '".$data['lastName']."', 
'".$data['email']."', ".TIME().", 
'".$result["transaction_id"]."','".$invoice_number."', 
(SELECT u_id FROM `#__hl_puser_role` WHERE pid = '".$data['property_id']."'), 
0 ,'".$total_adult."', '".$data['phone']."', 
'".$session->get('checkin_date')."', '".$session->get('checkout_date')."', 0, 0, 
'".$final_amount."', '".$session->get('amount_payable')."', 
'".$session->get('balance_amount')."', 
".NOW().", ".NOW().", 'comments'";