我懷疑這是因爲你的$ _POST變量之一沒有設置。下面的代碼檢查post變量是否設置,如果沒有設置它們的值爲null
。我已更改您使用的&符號,它應該是和。
$sql_edit = "UPDATE subscription SET name=?,email=? WHERE name=? AND email=?";
$q_edit = $pdo->prepare($sql_edit);
$do_update = $q_edit->execute(array(
(isset($_POST['new_name']) ? $_POST['new_name'] : null),
(isset($_POST['new_email']) ? $_POST['new_email'] : null),
(isset($_POST['old_name']) ? $_POST['old_name'] : null),
(isset($_POST['old_email']) ? $_POST['old_email'] : null)
));
// Also check that it was executes successfully in your code
if (!$do_update)
{
echo "Failed to update";
}
else
{
echo "Update successful";
}
我建議你檢查的值在張貼之前,而不是僅僅把他們變成這樣雖然陣列。
另一件事是檢查您的連接沒有被設置爲隱式事務,否則你將需要提交更改到數據庫(或回滾他們):
$pdo->rollBack();
$pdo->commit();
這隻會工作如果您的列設置爲允許空值。
使用'&&'或'和'。 –
使用print_r($ pdo-> errorInfo());,檢查錯誤 – Shin
[SQL 101](http://dev.mysql.com/doc/refman/5.6/en/non-typed-operators.html) 。 –