2012-05-02 21 views
0

を挿入します。PHPのxml PDOちょっと私はこの隠されたフォームを使用してXML値を渡すためにしようとしていたクエリエラー

<form method='post' action='addholiday.php' id='addHoliday'> 
<input type='hidden' name='title' id='title' value= '.$holiday->title'> 
<input type='hidden' name='link' id='link' value= '.$holiday->link'> 
<input type='hidden' name='date' id='date' value= '.$holiday->pudDate'> 
<input type='hidden' name='description' id='description' value= '.$holiday->description'> 
    <input type='submit' name='submit' value='Add Holiday'>"; 

とPDOのプロセスを使用してMySQLデータベースに値を挿入します。

$db = getConnection(); 

//get holiday infor from hidden form 
$user = $_SESSION['user']; 
$title = $_POST['title']; 
$link = $_POST['link']; 
$date = $_POST['date']; 
$description = $_POST['description']; 

//insert the values in to favorties table 
$sql = "INSERT INTO saved_holidays (subscriberID, link, pubDate, title, description,dateSaved) 
VALUES (:subscriberID, :link, :pubDate, :title, :description, now())"; 

$stmt = $db->prepare($sql); 
$stmt ->bindParam(':subscriberID', $user); 
$stmt ->bindParam(':link', $link); 
$stmt ->bindParam(':pubDate',$date); 
$stmt ->bindParam(':title', $title); 
$stmt ->bindParam(':description', $description); 

$stmt->execute(array($user, $link, $date, $title, $description)); 

しかし、私は、フォーム

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: 
Invalid parameter number: parameter was not defined' in  var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11023553/public_html/holiday/addholiday .php:39 Stack trace: #0 
/var/www/vhosts/numyspace.co.uk/web_users/home/~unn_w11023553/public_html/holiday/addholiday.php(39):PDOStatement->execute(Array) #1 {main} thrown in /var/www/vhosts/numyspace.co 
.uk/web_users/home/~unn_w11023553/public_html/holiday/addholiday.php on line 39 

を使用しようとすると、私はので、任意の助けをbしまうPDOを使用しては比較的新しいよ、このエラーメッセージが出続けますお礼ありがとう

+0

'$ stmt'と' - > bindParam'の間のスペースを削除してみてください。 –

+0

私はまだPDOを試していませんでしたが、bindParam()**や**の値を配列のexecute()で渡すことになっていませんか? – ccKep

答えて

1

このようにしてbindParamを使用する場合は、executeを使用する必要はありません(またその逆もあります)。クエリで使用されたシンボル(キーはRubyの用語から借りている)としてキーを使用して、配列をkey =>値として渡す必要があります。

0

executeの両方の方法でパラメーターを渡して、bindParamのステートメントにバインドします。どちらか一方のみを実行する必要があります。

関連する問題