2016-04-13 13 views
-2

私は自分のWebアプリケーション上のフォームから情報を渡すしようとすると、私のMySQLのクエリは、このエラーメッセージを考え出すされています予期しないT_CONSTANT_ENCAPSED_STRING

解析エラー:構文エラー、予期しない「"」、『CURRENT_TIMESTAMP』、 '" '(T_CONSTANT_ENCAPSED_STRING)

mysql_query("INSERT INTO 'db'.'frs_Payment'('payid', 'amount', 'paydatetime', 'empnin', 'custid', 'pstatusid', 'ptid') 
     VALUES('','".$amount"','CURRENT_TIMESTAMP','".$empnin."','".$custid"','"2"','".$ptid."');"); 

それはエラーの原因となっているCURRENT_TIMESTAMP機能です。これがスピーチマークのためかもしれないと私は認識しています。しかし、タイムスタンプからそれらを追加して削除しても、クエリは実行されません。

他にスピーチマークを追加する必要はありますか?

+0

$額の値は何ですか?私はここで逃げることはできないので、あなたがその変数に不正な一重引用符を持っていたなら、何があってもそれは壊れてしまうでしょう。また、mysql_関数は非推奨です。 mysqliやPDOを調べて準備文を使用する –

+0

これはmysqlとは関係がありません。これはPHP構文エラーです – Shadow

+0

''current_timestamp''は、current_timestampというテキストをフィールドに挿入しようとしています。現在の時刻を挿入する場合は、 'current_timestamp()'を使用してください。しかし、これは質問のエラーメッセージから独立しています。 – Shadow

答えて

1

PHP構文でタイプミスがあります。変更:

mysql_query("INSERT INTO 'db'.'frs_Payment'('payid', 'amount', 'paydatetime', 'empnin', 'custid', 'pstatusid', 'ptid') 
     VALUES('','".$amount"','CURRENT_TIMESTAMP','".$empnin."','".$custid"','"2"','".$ptid."');"); 

へ:

mysql_query("INSERT INTO 'db'.'frs_Payment'('payid', 'amount', 'paydatetime', 'empnin', 'custid', 'pstatusid', 'ptid') 
     VALUES('','".$amount."','CURRENT_TIMESTAMP','".$empnin."','".$custid."','2','".$ptid."');"); 

タイプミスは自己を説明しています。

また、mysql_queryはPHP 5.5.0では非推奨で、PHP 7.0.0では削除されました。

1
mysql_query("INSERT INTO 'db'.'frs_Payment'('payid', 'amount', 'paydatetime', 'empnin', 'custid', 'pstatusid', 'ptid') 
    VALUES('','$amount',CURRENT_TIMESTAMP(),'$empnin','$custid','2','$ptid');"); 

二重引用符で囲まれた文字列を分割する必要はありません。どこでも引用符が多すぎます。また、CURRENT_TIMESTAMPは文字列リテラルではなくSQL関数です。

関連する問題