2016-07-25 94 views
-2

請幫忙解決不了,試了三天後卻無法知道它拋出我這樣的信息是什麼原因。 (以下是我的完整代碼)。PDOException:SQLSTATE [HY093]:無效的參數編號:參數未定義

<!DOCTYPE html> 
<html> 
<head> 
    <title>Insert New Post</title> 
</head> 
<body> 
<form method="post" action="insert_post.php" enctype="multipart/form-data"> 
<table align="center" border="10" width="600"> 
    <tr> 
     <td align="center" colspan="5" bgcolor="yellow"><h1>Insert New Post Here</h1></td> 
    </tr> 

    <tr> 
     <td align="right">Post Title:</td> 
     <td><input type="text" name="title" size="40"></td> 
    </tr> 
    <tr> 
     <td align="right">Post Author:</td> 
     <td><input type="text" name="author"></td> 
    </tr> 
    <tr> 
     <td align="right">Post image:</td> 
     <td><input type="file" name="image_name"></td> 
    </tr> 
    <tr> 
     <td align="right">Post Content:</td> 
     <td><textarea name="content" cols="50" rows="20"></textarea></td> 
    </tr> 
    <tr> 

     <td align="center" colspan="5"><input type="submit" name="submit" value="Publish Now"></td> 
    </tr> 

</table>  

</form> 

</body> 
</html> 

上面的形式插入並在數據庫

// PHP 

    <?php 
include("includes/connect.php"); 

if (isset($_POST['submit'])) { 

    $title = $_POST['title']; 
    $datenow = date('Y/m/d'); 
    $author = $_POST['author']; 
    $content = $_POST['content']; 
    $image_name = $_FILES['image_name']['name']; 
    $image_type = $_FILES['image_name']['type']; 
    $image_size = $_FILES['image_name']['size']; 
    $image_tmp = $_FILES['image_name']['tmp_name']; 

    if ($title =='' || $author =='' || $content =='') { 
     echo "<script>alert('Any feild is empty')</script>"; 
     exit(); 
    } 
    if ($image_type =='image/jpeg' || $image_type =='image/png' || $image_type =='image/gif') { 

     if ($image_size<=5000000000) { 
      move_uploaded_file($image_tmp, "images/$image_name"); 
     } 
     else{ 
      echo "<script>alert('Image is larger, only 50kb size is allowed')  </script>"; 
     } 
    } 
    else{ 
     echo "<script>alert('image type is invalid')</script>"; 
    } 

    // insert query 
       $sth = $con->prepare(" INSERT INTO posts (post_title, post_date, post_author, post_image, post_content) VALUE (:title,:datenow,:author,:image_name,:content) "); 

    $sth->bindParam(':post_title', $title); 
    $sth->bindParam(':post_date', $datenow); 
    $sth->bindParam(':post_author', $author); 
    $sth->bindParam(':post_image', $image_name); 
    $sth->bindParam(':post_content', $content); 

     $sth->execute(); 

echo "<h1>Form Submited Successfully</h1>"; 

} 

?> 

    // $sth->execute(); is throwing error massage as above 
+0

要綁定':標題,:datenow,:author..'不':POST_TITLE,:post_date..' – Saty

回答

2

你要綁定錯values.You的post_沒有綁定*值提交數據。請看下圖:

$sth = $con->prepare(" INSERT INTO posts (post_title, post_date, post_author, post_image, post_content) VALUES (:post_title,:post_date,:post_author,:post_image,:post_content) "); 

$sth->bindParam(':post_title', $title); 
$sth->bindParam(':post_date', $datenow); 
$sth->bindParam(':post_author', $author); 
$sth->bindParam(':post_image', $image_name); 
$sth->bindParam(':post_content', $content); 
+0

感謝msantos你的偉大,幫了我...... – David

+0

現在我的鱈魚工作正常....! – David

+0

Thanks.Im很高興爲您效勞。 – msantos

相關問題