私は、自分で使用するための単純な「小さな」映画カタログ データベース システムを構築しています。現在の問題は、ほとんどの場合は機能しますが、すべてではない mySQL クエリを持っていることです。基本的に、サードパーティの IMDB API を使用して動作します。それを使用して、必要な値を検索して取得しますが、これはうまく機能します。プレビュー画面とすべてに表示されます。私が直面している問題は、ほとんどの映画は機能しますが、一部の映画は機能せず、理由がわかりません。
たとえば、The Fellowship of the Ring は問題なく保存されますが、The Return of the King は単純にクエリを通過しません。違いが見つかりません。
これが私のクエリです:
$query = "INSERT INTO movies
(title, year, releaseDate, actors, image, runtime, genre, director, rating, watchedDate, category, series, comments, owned, ownedFormat, seen, plot, favorite, uploadDate)
VALUES ('$title', '$year', '$releaseDate', '$actors', '$newImg', '$runtime', '$genre', '$director', '$rating', '$watchedDate', '$category', '$series', '$comments', '$owned', '$ownedFormat', '$seen', '$plot', '$favorite', '$curDate')";
mysql_query($query) or die ('Error');
他に何を提供する必要があるのか わかりません。映画の何らかの違いがエラーを引き起こしているようですが、わかりません。
ありがとう!
** 編集 ** *
そこで、mysqli に切り替えてみました。これが私の新しいコードです:
/* Create the prepared statement */
if ($stmt = $mysqli->prepare("INSERT INTO movies (title, year, releaseDate, actors, image, runtime, genre, director, rating, watchedDate, category, series, comments, owned, ownedFormat, seen, plot, favorite, uploadDate) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)")) {
/* Bind our params */
$stmt->bind_param('sssssssssssssssssis', $title, $year, $releaseDate, $actors, $newImg, $runtime, $genre, $director, $rating, $watchedDate, $category, $series, $comments, $owned, $ownedFormat, $seen, $plot, $favorite, $curDate);
/* Execute the prepared Statement */
$stmt->execute();
/* Echo results */
echo "Inserted {$title} into database\n";
}
ただし、次のようなエラーが表示されます: 致命的なエラー: if ステートメントが開始する行の非オブジェクトでメンバー関数 prepare() を呼び出します。
これは、クエリがオブジェクトではないためだと思いますか?
ありがとう