0

私はPHPが初めてなので、我慢してください。

これは、私のサイトの予約テーブルに入力するためのコードです:

http://pastie.org/8190189

これは、サイトのフロント エンドのフォームにデータを入力したときに表示されるエラーです。

http://pastie.org/8190194

私は何時間もそれに取り組んできましたが、どこにも行けません。

問題は次のものにある可能性があると思いました:

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

テーブル puser_role は、サイトで管理できるホテルに joomla ユーザーを接続するだけです。(ホテル支配人のjoomlaユーザー番号をテーブルに入力したい)。

しかし、構文は正しいと確信しています。

ご協力いただきありがとうございます。

4

2 に答える 2

1

問題は TIME(); の使用です。

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())

TIMEのMySQLマニュアルから

TIME(式)

時間または日時の式 expr の時間部分を抽出し、文字列として返します。

この関数は、ステートメント ベースのレプリケーションでは安全ではありません。MySQL 5.5.1 以降、binlog_format が STATEMENT に設定されているときにこの関数を使用すると、警告が記録されます。(バグ #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'
于 2013-07-30T14:41:17.500 に答える
1

「二重引用符」内に TIME() および NOW() 関数を挿入しています。このように見えるようにチェーンしてみてください

$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'";
于 2013-07-30T14:37:19.747 に答える