私は奇妙な問題に直面しています。Web サイト全体で 100% 機能するコードを使用していますが、特定の場所では機能しません。コードは次のとおりです。
$stmt_insert_query = "INSERT INTO mya_events(event_id, artist_id, event_title, date, event_text, event_start, event_duration, genre, soundcloud_preview, event_type, country, ext, clicks, active) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
$stmt_insert = $db->prepare($stmt_insert_query);
$stmt_insert->bindValue(1, $next_avail, PDO::PARAM_INT);
$stmt_insert->bindValue(2, $_id, PDO::PARAM_INT);
$stmt_insert->bindValue(3, $_POST['event_title'], PDO::PARAM_STR);
$stmt_insert->bindValue(4, $event_date, PDO::PARAM_STR);
$stmt_insert->bindValue(5, $_POST['event_text'], PDO::PARAM_STR);
$stmt_insert->bindValue(6, $_POST['event_start'], PDO::PARAM_STR);
$stmt_insert->bindValue(7, $_POST['event_duration'], PDO::PARAM_STR);
$stmt_insert->bindValue(8, 'electronica', PDO::PARAM_STR);
$stmt_insert->bindValue(9, '', PDO::PARAM_STR);
$stmt_insert->bindValue(10, 'dj_event', PDO::PARAM_STR);
$stmt_insert->bindValue(11, 'US', PDO::PARAM_STR);
$stmt_insert->bindValue(12, '', PDO::PARAM_STR);
$stmt_insert->bindValue(13, 0, PDO::PARAM_INT);
$stmt_insert->bindValue(14, 'y', PDO::PARAM_STR);
$stmt_insert->execute();
このコードの後、表示されるテキストを表示しています。また、print_r($db->errorInfo()); でエラーをチェックしました。エラーは表示されません。また、try - catchを試みましたが、何もしませんでした。
phpMyAdmin から手動で行を入力しましたが、動作します。
どこが間違っていますか?コードを 10 回チェックしましたが、完璧です。
アップデート
サーバーのログに正確にエラーが見つかりました->実行
[11-Oct-2012 14:48:15] PHP 致命的なエラー: メッセージ「SQLSTATE[42000] を伴う例外「PDOException」をキャッチできません: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。''event_id', 'artist_id', 'event_title', 'date', 'event_text', 'event_start', 'ev' at line 1' の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。 /home/cubeworx/public_html/electronicdancemusic.net/MYArtist/admin/list_events.php:527 スタック トレース:
0 /home/cubeworx/public_html/electronicdancemusic.net/MYArtist/admin/list_events.php(527): PDOStatement->execute()
1 {メイン}
/home/cubeworx/public_html/electronicdancemusic.net/MYArtist/admin/list_events.php の 527 行目にスローされます