ネイティブ PHP の PDO でレコードの削除に失敗しました。どこが間違っているのかわかりません。ずっと悩んでいます。アドバイスをお願いします。
GET を通じてデータを削除する必要があります。
<a href="localhost/admin/cmd.php?act=delInfo&t=link&id=60"> 削除</ a>
<?php //连接数据库 $servername = 'localhost'; $charset = 'utf8mb4'; $username = 'sa'; $password = '123456'; $dbname='touying'; $conn = new PDO("mysql:host=$servername;dbname=$dbname;charset=$charset", $username, $password); $act=$_GET["act"]; switch ($act) { case 'AdminLogin': AdminLogin(); break; case 'delInfo': delInfo(); break; default:; } // get请求删除信息,localhost/admin/cmd.php?act=delInfo&t=link&id=60 // 参数中的 act=操作的方法, t=link是要操作的表名link,id=60 是要操作的id. Function delInfo(){ $t=$_GET["t"]; $tid=$_GET["id"]; $sql="DELETE From ".$t." where id=".$id; $count=$conn->exec($sql); print("Deleted $count rows.\n"); } ?>
結果は間違っています。エラー メッセージは次のとおりです:
致命的エラー: 捕捉されないエラー: D:\phpstudy_pro\WWW\admin の null でメンバー関数 exec() を呼び出します\cmd.php:32 スタック トレース: #0 D:\phpstudy_pro\WWW\admin\cmd.php(22): delInfo() #1 {main} が D:\phpstudy_pro\WWW\admin\cmd.php でスローされました32行目##
志远电脑小马哥2022-05-11 20:48:01
$sql="DELETE From ".$t." where id=".$tid;
ここの ID は入力エラーです。通常は tid であるはずです。問題はここではありません。中断後の SQL は正常です。 ID=69 のリンクから削除 データベースにはこのレコードがあります。
rreeee