PHP PDOでMySQLのデータを削除したい
私はいまPHP PDOを使い、content.phpに削除処理を実装しようとしています。
以下のコードでは、「//取得」のところで表示されている画像A(src=$xxurl)を、content.php内では削除(?)できます(、というか非表示になります)。
しかし、サムネイル一覧ページであるhome.phpに進むと、削除されておらず、画像Aのサムネイルをクリックしcontent.phpに遷移すると、画像Aは再表示されてしまいます。
phpMyAdminでデータを確認しても、削除できていません。
content.php上のボタンをクリックすると、home.phpに遷移し、そこのサムネイル一覧とデータベースから、(ひとつの)データを削除する方法を教えていただきたいです。
【content.php】
try{
$hostname = 'mysql321.db.sakura.ne.jp';
$dbname = 'dbname';
$username = 'username';
$password = 'xxxxx';
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname;", $username, $password
, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$stmt = $dbh->prepare("INSERT INTO xxxxURLs (name, url, time) values (:name, :url, :time)");
if(!$stmt)
{
$error_info = $dbh->errorInfo();
die($error_info[2]);
}
$stmt->bindValue(":name", $name, PDO::PARAM_STR);
$stmt->bindValue(":url", $xxurl, PDO::PARAM_STR);
$today = date("M d Y Ah:i");
$stmt->bindValue(":time", $today, PDO::PARAM_STR);
$stmt->execute();
//取得
$stmt = $dbh->prepare("SELECT time FROM xxxxURLs WHERE url = :url");
$stmt->bindValue(":url", $xxurl, PDO::PARAM_STR);
$stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->execute();
echo "<div class=\"text\">";
while ($row = $stmt->fetch()) {
$theday = htmlspecialchars($row["time"]);
echo $theday;
}
echo "</div>";
//削除
echo "<form method=\"post\" action=\"home.php\"><button type='submit' name='action' value='delete'></form>";
if ($_POST['action'] == 'delete') {
$stmt = $dbh->prepare("DELETE FROM xxxxURLs WHERE url = :url LIMIT 1");
$stmt->bindValue(":url", $xxurl, PDO::PARAM_STR);
$stmt->execute();
}
} catch(PDOException $e){
echo $e->getMessage();
}
【home.php】
<?php
try{
$hostname = 'mysql321.db.sakura.ne.jp';
$dbname = 'dbname';
$username = 'username';
$password = 'xxxxx';
$dbh = new PDO("mysql:host=$hostname;dbname=$dbname;", $username, $password
, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
//取得
$stmt = $dbh->prepare("SELECT url FROM pastaURLs WHERE name = :name");
$stmt->bindValue(":name", $name, PDO::PARAM_STR);
$stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt->execute();
echo "<div>";
while ($row = $stmt->fetch()) {
$album = htmlspecialchars($row["url"]);
echo "<div>";
echo "<a href=\"{$album}\"></a>";
echo "<iframe src=\"{$album}\"></iframe></div>";
}
echo "</div>";
}catch(PDOException $e){
echo $e->getMessage();
}
?>