このコードは、クエリを処理しようとしているもので、削除または挿入すると影響がありません。なぜSQLクエリが実行されないのですか?
idは正しいですが、conn.phpは正しいです。
私はphpMyAdminにSQLクエリをコピーしてテストするだけで動作します。
そしてecho "test";
をtry{}
の間に置きます。
は私が
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
やエラーを追加しましたあなたの
<?
include("../connection/conn.php");
session_start();
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// list out the pervious create list
//$id=$_GET['id'];
$id=3;
try{
$sql = 'INSERT INTO delete_list SELECT * FROM list WHERE ListID=?';
$stmt = $conn->prepare($sql);
$stmt->execute(array($id));
}
catch(PDOException $e)
{
die ($e->getMessage().'<a href="view.php"> Back</a>');
}
try{
$sql = 'INSERT INTO delete_user_list SELECT * FROM user_list WHERE ListID=?';
$stmt = $conn->prepare($sql);
$stmt->execute(array($id));
}
catch(PDOException $e)
{
die ($e->getMessage().'<a href="view.php"> Back</a>');
}
try{
$sql = 'INSERT INTO delete_require_attributes SELECT * FROM require_attributes WHERE ListID=?';
$stmt = $conn->prepare($sql);
$stmt->execute(array($id));
}
catch(PDOException $e)
{
die ($e->getMessage().'<a href="view.php"> Back</a>');
}
try{
$sql = 'INSERT INTO delete_subscriber SELECT * FROM subscriber WHERE ListID=?';
$stmt = $conn->prepare($sql);
$stmt->execute(array($id));
$count=$stmt->rowCount();
}
catch(PDOException $e)
{
die ($e->getMessage().'<a href="view.php"> Back</a>');
}
try{
$sql = 'INSERT INTO delete_list_sub SELECT * FROM list_sub WHERE ListID=?';
$stmt = $conn->prepare($sql);
$stmt->execute(array($id));
}
catch(PDOException $e)
{
die ($e->getMessage().'<a href="view.php"> Back</a>');
}
try{
$sql = 'DELETE FROM list WHERE ListID = ?';
$stmt = $conn->prepare($sql);
$stmt->execute(array($id));
}
catch(PDOException $e)
{
die ($e->getMessage().'<a href="view.php"> Back</a>');
}
echo "The list has been deleted.".$count." subscribers has been removed. <a href='view.php'> Back</a>";
?>
ありがとう補間する変数のためのために、あなたは、二重使用する必要があるので、それは動作しません
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'ListID' in 'where clause' Back
PDOを使用していることは素晴らしいですが、パラメータ化されたクエリを使用していない場合でも、セキュリティのギャップは非常に大きくなります。 – lonesomeday