2017-06-17 7 views
-3

私はこのエラーを受け取りました。 :)エラーメッセージが表示され、それが何であるか分かりません

警告:をPDOStatement ::実行():SQLSTATE [HY093]:無効パラメータ番号:パラメータはライン上.......に定義されていなかった98

PDO:

function createNewNews($autor, $titel, $news) { 
    $stmt = self::$_db->prepare('INSERT INTO eintraege (Autor, Headline, Datum, Eintrag) VALUES (:autor, :Headline, :datum, :news)'); 
    $stmt->bindParam(":autor", $autor); 
    $stmt->bindParam(":datum", $datum); 
    $stmt->bindParam(":news", $titel); 
    $stmt->bindParam(":titel", $news); 

    if($stmt->execute()) { 
     return true;  
    } else { 
     return false; 
    } 

} 

PHP:

if(isset($_POST['submit'])) { 
    $autor = $_POST['autor']; 
    $datum = $_POST['datum']; 
    $news = $_POST['titel']; 
    $titel = $_POST['news']; 

    if($db->createNewNews($autor, $titel, $news)) { 
     echo "YES!";  
    } else { 
     echo "No!"; 
    } 
} 
+3

?引数として渡してください! –

+0

'bindValue'を使うとどうなりますか? – kRicha

答えて

2

あなたはcreateNewNews関数のパラメータ$データムが欠落しています。

+0

あなたは私のミスを見つけた –

0

あなたは、引数

function createNewNews($autor, $datum,$titel, $news) { 
    $stmt = self::$_db->prepare('INSERT INTO eintraege (Autor, Headline, Datum, Eintrag) VALUES (:autor, :Headline, :datum, :news)'); 
    $stmt->bindParam(":autor", $autor); 
    $stmt->bindParam(":datum", $datum); 
    $stmt->bindParam(":news", $titel); 
    $stmt->bindParam(":titel", $news); 

    if($stmt->execute()) { 
     return true;  
    } else { 
     return false; 
    } 

} 

PHPとしても$datumを渡す必要があります: `$のdatum`は、関数のスコープ内に存在しない

if(isset($_POST['submit'])) { 
    $autor = $_POST['autor']; 
    $datum = $_POST['datum']; 
    $news = $_POST['titel']; 
    $titel = $_POST['news']; 

    if($db->createNewNews($autor, $datum,$titel, $news)) { 
     echo "YES!";  
    } else { 
     echo "No!"; 
    } 
} 
関連する問題