我面临一个奇怪的问题。我正在使用一段代码,它在我的网站上 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()); 检查了错误。但没有显示错误。也试过尝试 - 抓住但没有。
我从 phpMyAdmin 手动输入一行,它可以工作。
我哪里错了?我检查了代码 10 次,它是完美的。
更新
我在服务器日志中发现了一个错误,正是我做的地方->执行
[2012 年 10 月 11 日 14:48:15] PHP 致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 ''event_id'、'artist_id'、'event_title'、'date'、'event_text'、'event_start'、'ev' at line 1' 附近使用正确的语法/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 行