mysqlデータベースに行を挿入しようとすると、この奇妙な問題が発生します。2より大きい数の配列を暗黙に埋め込むとPHP INSERTエラーが発生する
これは考えです。運動の範囲が列挙されており、量を追加してこの運動を(日、月、火、水、木、金、土)に加える日を確認し、それを日記に追加することができます。
これは私のコードです。
$addDiary = array();
$addTimestamp = array();
$addDiary[] = '('.$current_user->id.', '.$_POST['exid_'.$i].', '.$_POST['qty_'.$i].', '.$calories_mod.', '.implode('.', $addTimestamp).')';
$queryAddDiary = mysql_query("INSERT INTO LHNZ_FT_DIARY (USER_ID, EXERCISE_ID, TIME, CALORIES, TIMESTAMPS) VALUES ".implode(',', $addDiary));
私はaddDiary配列とaddTimestamp配列をエコーしてくれて、うまく見えます。
$ addTimestamp:1311206400.1311292800.1311379200
$ addDiary:(2、1、1、678、1311206400.1311292800.1311379200)
私の$ addTimestamp配列が1または2の長さを持っている場合、クエリは美しく動作することしかし、長さが2より大きい場合は、このエラーが発生します。
SQL構文に誤りがあります。右の構文は1
今ラインで「)0.1311379200」 近く使用するため は、MySQLサーバのバージョンに対応していることを、マニュアルをご確認ください。このエラーは 'を使用すると表示されます。または$ addTimestampのための私のimplodeとして ':'。私が手紙、または '_'を使用すると、このエラーが発生します。 「フィールドリスト」
で
不明な列「1311206400_1311292800_1311379200」私は(私はその運動を3週を行うことを意味2以上の長さで$ addTimestampを使用することができますどのように任意のアイデア...これがエラーの場所です)。
おかげで、MySQLのクエリで
- レイトン
質問にはPOSTデータを直接使用することはお勧めできません.Kamiによれば、あなたはSQLインジェクションを利用できます。新しいコードでhttp://bit.ly/phpmsql mysql_ *関数を使用しないでください。それらはもはや維持されず、https://wiki.php.net/rfc/mysql_deprecationは公式に推奨されなくなりました。代わりにhttp://php.net/pdo PDOまたはhttp://php.net/mysqli MySQLiについて学んでください。 – Revent