私は登録ユーザーのテーブルを持っています。私のコードは、テーブルの削除をクリックすると、行を削除すると仮定しています。削除クリックすると これは、database.phpでそう
.....
while ($row = mysqli_fetch_array($r, MYSQLI_ASSOC)) {
echo '<tr><td align="left">' . $row['Id'] . '</td><td align="left"><a href="delete.php?id=' . $row['Id'] . '">Delete</a></td></tr>';
}
......
であり、私はIDを取得しています。これまでのところ、この部分は動作しますが、削除クエリを実行しようとするとうまくいきません。
<?php
session_start();
include 'connection.php';
if (isset($_POST['Id']) && is_numeric($_POST['Id'])){
$id = mysqli_real_escape_string($conn, $_POST['Id']);
$result = mysqli_query("DELETE FROM table_name WHERE Id= '$id' ")
or die(mysqli_error());
echo "<h3><br><br><a href=database.php> <b> Go Back</a></h3>";
echo "Data Deleted";
}else {
echo "Error";
echo "<h3><br><br><a href=database.php> <b> Go Back</a></h3>";
}
?>
delete.php私は「エラー」を取得し、それは行を削除しません。どうすれば修正できますか?
編集:
<?php
session_start();
include 'connection.php';
if (isset($_GET['Id']) && is_numeric($_GET['Id']))
{
$id = mysqli_real_escape_string($conn, $_GET['Id']);
$result = mysqli_query("DELETE FROM User_reg WHERE Id= '$id' ")
or die(mysqli_error());
echo "<h3><br><br><a href=AdminLog.php> <b> Go Back</a></h3>";
echo "Data Deleted";
}else {
echo "Error";
echo "<h3><br><br><a href=AdminLog.php> <b> Go Back</a></h3>";
}
?>
はまだ削除クエリが機能していないと同じ結果を得ます。 また、「Id」名はデータベースと同じ方法で設定されます。
'id'は大文字と小文字が区別されます –
**警告**:mysqliを使用する場合は、[パラメータ化されたクエリ](http://php.net/manual/en/mysqli.quickstart。 prepared-statements.php)と['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)を使用してクエリにユーザーデータを追加します。 **重大な[SQLインジェクションのバグ](http://bobby-tables.com/)を作成するため、マニュアルエスケープと文字列補間または連結を使用しないでください。誤ってエスケープされていないデータは重大なリスクです。 – tadman
この質問はあまりにも多くの編集が増えています –