PHP SQL 使用表单更新查询
PHP SQL update query with form
<section id="media" class="four">
<div class="container">
<header> <h2>Media</h2> </header>
<?php
if (isset($_POST["mediaOpslaan"])) {
header("Location: #media");
//SQL update query
$sqlInsert = 'UPDATE Media SET Album1=:album1, Album2=:album2, Album3=:album3, WHERE ID=:id';
$preparedStatement = $dbh->prepare($sqlInsert);
$preparedStatement->execute(array(
'id' => 1,
'album1' => $_POST["album1"],
'album2' => $_POST["album2"],
'album3' => $_POST["album3"]
));
}
$sth = $dbh->prepare("SELECT * FROM Media WHERE ID =:nummer");
$bindings = array(
"nummer" => 1
);
$sth->execute($bindings);
$media = $sth->fetch(PDO::FETCH_ASSOC);
?>
<form method="POST" action="">
<table>
<tr>
<td> Album 1: </td>
<td>
<input type="text" value="<?= $media["Album1"] ?>" name="album1">
</td>
</tr>
<tr> <td> Album 2: </td>
<td>
<input type="text" value="<?= $media["Album2"] ?>" name="album2">
</td>
</tr>
<tr>
<td> Album 3: </td>
<td>
<input type="text" value="<?= $media["Album3"] ?>" name="album3">
</td>
</tr>
<tr>
<td colspan='2'>
<button type="submit" name="mediaOpslaan">Opslaan</button>
</td>
</tr>
</table>
</form>
</div>
</section>
连接正确,这段代码使用一个表单来更新数据库中的一行,同样的代码适用于我数据库中的其他表,但这个不行吗? :(
这是我的数据库的截图:
http://s2.postimg.org/jpwhe91ax/Capture.png
非常感谢,我已经看了一遍又一遍,但似乎找不到问题所在。
错别字:
$sqlInsert = 'UPDATE Media SET ...snip... =:album3, WHERE ID=:id
^--- stray comma
因为你没有提到任何 errors/exceptions,你可能 运行 PDO 默认 "return false" 模式,这意味着你 有 自己检查错误:
$stmt = $dbh->prepare(...) or die($dbh->errorInfo());
<section id="media" class="four">
<div class="container">
<header> <h2>Media</h2> </header>
<?php
if (isset($_POST["mediaOpslaan"])) {
header("Location: #media");
//SQL update query
$sqlInsert = 'UPDATE Media SET Album1=:album1, Album2=:album2, Album3=:album3, WHERE ID=:id';
$preparedStatement = $dbh->prepare($sqlInsert);
$preparedStatement->execute(array(
'id' => 1,
'album1' => $_POST["album1"],
'album2' => $_POST["album2"],
'album3' => $_POST["album3"]
));
}
$sth = $dbh->prepare("SELECT * FROM Media WHERE ID =:nummer");
$bindings = array(
"nummer" => 1
);
$sth->execute($bindings);
$media = $sth->fetch(PDO::FETCH_ASSOC);
?>
<form method="POST" action="">
<table>
<tr>
<td> Album 1: </td>
<td>
<input type="text" value="<?= $media["Album1"] ?>" name="album1">
</td>
</tr>
<tr> <td> Album 2: </td>
<td>
<input type="text" value="<?= $media["Album2"] ?>" name="album2">
</td>
</tr>
<tr>
<td> Album 3: </td>
<td>
<input type="text" value="<?= $media["Album3"] ?>" name="album3">
</td>
</tr>
<tr>
<td colspan='2'>
<button type="submit" name="mediaOpslaan">Opslaan</button>
</td>
</tr>
</table>
</form>
</div>
</section>
连接正确,这段代码使用一个表单来更新数据库中的一行,同样的代码适用于我数据库中的其他表,但这个不行吗? :(
这是我的数据库的截图: http://s2.postimg.org/jpwhe91ax/Capture.png
非常感谢,我已经看了一遍又一遍,但似乎找不到问题所在。
错别字:
$sqlInsert = 'UPDATE Media SET ...snip... =:album3, WHERE ID=:id
^--- stray comma
因为你没有提到任何 errors/exceptions,你可能 运行 PDO 默认 "return false" 模式,这意味着你 有 自己检查错误:
$stmt = $dbh->prepare(...) or die($dbh->errorInfo());