2017-06-17 86 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

'$ datum'不会在函数的范围存在吗?把它作为一个参数传递! –

+0

如果您使用'bindValue',该怎么办? – kRicha

回答

2

你有createNewNews功能缺失的参数$基准。

+0

你是我发现我的错误 –

0

您还需要通过$datum作为参数

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:

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!"; 
    } 
} 
相关问题