私は映画を借りるためにサイトを構築する必要がある学校プロジェクトに取り組んでいます。エラーを取得引数がありません
イム:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE idFilm = NULL)' at line 1' in /home/ubuntu/workspace/classes/video.php on line 334
(!) PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE idFilm = NULL)' at line 1 in /home/ubuntu/workspace/classes/video.php on line 334
アイデアは、あなたが新しい映画を作成して、1つのまたは複数のジャンルを追加することができるということです。私は映画にジャンルを結びつけることに失敗しました。
だから私のコードは次のとおりです。
<?php
include('security.php');
$genre = $video->getAllGenre();
if(isset($_POST['submit'])){
$error = "";
//var_dump($_POST);
$target_dir = $_SERVER['DOCUMENT_ROOT'].'/images/covers/';
$temp = explode(".", $_FILES["file"]["name"]);
$fileName = $video->generateCoverName() .'.'. end($temp);
$target_file = $target_dir . $fileName;
//echo('Target file: '.$target_file);
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
$check = getimagesize($_FILES["file"]["tmp_name"]);
if($check == false) {
$error = "Bestand is geen foto.";
}
if ($_FILES["file"]["size"] > 50000000) {
$error = "Sorry, bestand is te groot.";
}
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif") {
$error = "Sorry, alleen jpg, png, jpeg en gif zijn toegestaan.";
}
if (!$error) {
if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
//echo "The file ". $fileName. " has been uploaded.";
$video->genreToFilm($_POST['idFilm'], $_POST['idGenre']);
$video->newVideo($_POST['titel'], $_POST['aantal'], $fileName, $_POST['omschrijving'], $_POST['prijs']);
} else {
echo("Sorry, er was een probleem met het uploaden van uw bestand.");
}
} else {
print('<div class="alert alert-info fade-out">'.$error.'</div>');
}
}
?>
<div class="row">
<div class="col-xs-12 col-sm-12 col-md-12 loginborder">
<form role="form" method="post" action="" autocomplete="off" enctype="multipart/form-data">
<h2 class="loginhead">Film toevoegen</h2>
<hr>
<div class="registrationform">
<div class='row'>
<div class="form-group col-xs-12 col-sm-12 col-md-6">
<p>Titel:</p>
<input type="text" name="titel" id="titel" class="form-control input-lg" required value="<?php if(isset($error)){ print($_POST['titel']); } ?>" tabindex="1">
</div>
<div class="form-group col-12 col-xs-12 col-sm-12 col-md-6">
<p>Upload een coverfoto:</p>
<input type="file" name="file" id="file" required>
</div>
</div>
<div class='row'>
<div class="omschrijving form-group col-xs-12 col-sm-12 col-md-6">
<p>Omschrijving:</p>
<textarea style="resize: none;" name="omschrijving" rows="12" cols="50" placeholder="Omschrijving van de film..." required class="form-control"><?php if(isset($error)){ print($_POST['omschrijving']); }?></textarea>
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-3">
<p>Aantal:</p>
<input type="number" name="aantal" id="aantal" class="form-control input-lg" min="0" max="1000" step="1" required value="<?php if(isset($error)){ print($_POST['aantal']); } ?>" tabindex="1">
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-3">
<p>Prijs:</p>
<input type="number" name="prijs" id="prijs" class="form-control input-lg" min="0" max="9999.99" step="0.01" required value="<?php if(isset($error)){ print($_POST['aantal']); } ?>" tabindex="1">
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-2">
<p>Genre 1:</p>
<select name="genre1" class="form-control input-lg">
<?php foreach ($genre as $gen) {
print(
'<option value='.$gen['idGenre'].'>'.$gen['genre'].'</option>');
} ?>
</select>
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-2">
<p>Genre 2:</p>
<select name="genre2" class="form-control input-lg">
<?php foreach ($genre as $gen) {
print('<option value='.$gen['idGenre'].'>'.$gen['genre'].'</option>');
} ?>
</select>
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-2">
<p>Genre 3:</p>
<select name="genre3" class="form-control input-lg">
<?php foreach ($genre as $gen) {
print('<option value='.$gen['idGenre'].'>'.$gen['genre'].'</option>');
} ?>
</select>
</div>
</div>
<div class="row">
<div class="form-group col-xs-12 col-sm-12 col-md-2">
<p>Acteur 1:</p>
<input type="text" name="acteurs" id="acteur1" class="form-control input-lg" min="0" max="1000" step="1" value="<?php if(isset($error)){ print($_POST['acteurs']); } ?>" tabindex="1">
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-2">
<p>Acteur 2:</p>
<input type="text" name="acteur2" id="acteur2" class="form-control input-lg" min="0" max="1000" step="1" value="<?php if(isset($error)){ print($_POST['acteurs']); } ?>" tabindex="1">
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-2">
<p>Acteur 3:</p>
<input type="text" name="acteur3" id="acteur3" class="form-control input-lg" min="0" max="1000" step="1" value="<?php if(isset($error)){ print($_POST['acteurs']); } ?>" tabindex="1">
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-2">
<p>Acteur 4:</p>
<input type="text" name="acteur4" id="acteur4" class="form-control input-lg" min="0" max="1000" step="1" value="<?php if(isset($error)){ print($_POST['acteurs']); } ?>" tabindex="1">
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-2">
<p>Acteur 5:</p>
<input type="text" name="acteur5" id="acteur5" class="form-control input-lg" min="0" max="1000" step="1" value="<?php if(isset($error)){ print($_POST['acteurs']); } ?>" tabindex="1">
</div>
<div class="submitVideoToevoegen col-xs-12 col-md-2">
<input type="submit" name="submit" value="Verstuur" class="btn btn-lg " tabindex="5">
</div>
</div>
</div>
</form>
</div>
</div>
とクラスのコードは次のとおりです。あなたがここに列の先が欠けて再
public function genreToFilm($idFilm, $idGenre){
try{
$stmt = $this->_db->prepare('INSERT INTO FilmGenre
VALUES(:idFilm, :idGenre WHERE idFilm = :idFilm)');
if($stmt->execute(array(':idGenre' => $idGenre,
':idFilm' => $idFilm))){
return true;
} else {
return false;
}
} catch (PDOExeption $e) {
echo '<p class="bg-danger">'.$e->getMessage().'</p>';
}
}
あなたidFilm値がありませんので、 'INSERT INTO..WHERE'はありません –
を設定しないでヌルです。代わりに 'UPDATE'クエリを実行することを意味しますか?また、そのまわりのかっこは間違っています。 – Qirel
新しい行を作成しようとしているのか、既存の行を修正しようとしていますか? – RiggsFolly