我有一个用MySQL制作的数据库(通过phpMyAdmin)。它持有2"笑话"。现在我想编辑笑话并在数据库中更新它们。
在这里我使用3个PHP脚本:
脚本:edit.php(在这里可以改变笑话)
脚本:connect.php(这将建立与数据库的连接)
脚本:update.php(需要设置您在数据库中所做的更改)
到目前为止脚本:
修改
<?php
include ("connect.php");
if (!isset($_GET['id'])) {
die('no id');
}
try
{
$sql = 'SELECT * FROM joke WHERE id = :id';
$stmt = $pdo->prepare($sql);
//koppelen van parameters in de query string
$stmt->bindValue(':id', intval($_GET['id']), PDO::PARAM_STR);
$stmt->execute();
}
catch (PDOException $e) {
die('Er is een probleem met het ophalen van joke: ' . $e->getMessage());
}
//ophalen van de gevonden rij
if ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$id = $row['id'];
$joketext = $row['joketext'];
$jokeclou = $row['jokeclou'];
}
else {
die('no row found');
}
echo <<<HTML
<form action="update.php" method="post">
<input type="hidden" name="id" value="{$id}">
<h1>Joke database</h1>
<p>
<textarea name="joketext" placeholder="vertel je grap">$joketext</textarea>
</p>
<p>
<textarea name="jokeclou" placeholder="wat is de clou ?">$jokeclou</textarea>
</p>
<input type="submit" name="Verzenden">
</form>
HTML;
?>
连接
<?php
try {
$pdo = new PDO('mysql:host=127.0.0.1;dbname=ijdb', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->exec('SET NAMES "utf8"');
}
catch (PDOException $e)
{
echo 'Er is geen connectie mogelijk met de MySQL database. '.$e->getMessage();
exit;
}
echo "Een database connectie is succesvol opgezet";
?>
更新
<?php
try {
// de query is set in a string variabele
$sql = 'UPDATE joke SET jokedate=”2013-04-25” WHERE id = 1';
// next the query wil me executed and rows will change
// de method exec will return the rows if they are succesfully executed
$aantalrijenaangepast = $pdo→exec($sql);
}
catch (PDOException $e) {
echo "Er is een fout opgetreden bij de update: ".$e→getMessage();
exit();
}
echo $aantalrijenaangepast. " rij(en) aangepast";
?>
此脚本中需要注意以下几点:
这一行:$ sql =&#39; UPDATE笑话SET jokedate =“2013-04-25”WHERE id = 1&#39;; 是此时不正确的行而且它需要更新信息。
数据库内容设置如下:
要编辑笑话,请确保在网址后面添加2个ID中的1个,以打开包含编辑文本框的窗口(?id = 1)
答案 0 :(得分:5)
你的update.php中有一些花哨的UTF8字符:
”
应为"
→
应为->
当您从网站复制和粘贴代码时,可能会发生这种情况。