我試圖從The Movie Database獲取一些數據,使用library在本地使用Xampp在數據庫中插入結果。我知道它是髒的(全局函數等),但我在本地運行 - 我只需要它將數據寫入數據庫如果有任何有效的數據,或重新運行功能如果不是。函數沒有寫入數據庫?
require_once '../vendor/autoload.php';
$token = new \Tmdb\ApiToken('My API Key - removed');
$client = new \Tmdb\Client($token);
$mid = 1;
$conn = new mysqli('localhost', 'root', '', 'test');
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
moviedetails();
function moviedetails() {
global $token;
global $client;
global $mid;
global $conn;
$repository = new \Tmdb\Repository\MovieRepository($client);
$movie = $client->getMoviesApi()->getMovie($mid);
var_dump($movie);
$votecount = $movie['vote_count'];
$voteaverage = $movie['vote_average'];
$image = $movie['poster_path'];
$releasedate = $movie['release_date'];
$id = $movie['id'];
$title = $movie['title'];
$description = $movie['overview'];
$sql = "INSERT INTO movie (votes, vote_average, poster, release_date, dbid, title, description)
VALUES ('$votecount', '$voteaverage', '$image', '$releasedate', '$id', '$title', '$description')";
echo $mid;
$mid++;
moviedetails();
}
我的腳本在$mid
= 3時失敗,但未將其他兩個有效條目寫入我的數據庫。
這可能是一個引用問題。保存你的頭痛,並切換到[預先準備的語句](http://php.net/manual/en/mysqli.quickstart.prepared-statements.php)和[bind_param](http://php.net/manual/ EN/mysqli的-stmt.bind-param.php)。另外,我沒有看到你實際將sql插入數據庫的位置。 – aynber
您不是有效地插入到數據庫中,而只是準備好執行查詢,則不會執行該查詢。 – coderodour