、より良い(これを行うにし、はるかに安全な方法)次のようになります。
は
PHP:searchcars.php
<?php
// Set Up MySQL Connection
$servername = "localhost";
$username = "username";
$password = "password";
try
{
$conn = new PDO("mysql:host=$servername;dbname=MyDB",$username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
// If $_POST['VIN'] is Set, Do a Little Validation
if(isset($_POST['VIN']))
{
// If VIN Contains Any Characters other Than Numbers or Letters then Die
if(!preg_match('/^[a-zA-Z0-9]{24}/',$_POST['VIN']))
{
die('A maximum combination of 24 numbers/letters is allowed');
}
// Delete Specified VIN Record From MySQL
$query = "
DELETE
FROM Cars
WHERE VIN = :VIN
";
try
{
$stmt = $conn->prepare($query);
$stmt->bindParam(':VIN', $_POST['VIN']);
$stmt->execute();
}
catch(PDOException $ex)
{
die("MySQL error:" . $ex->getMessage());
}
}
?>
HTML:
<form action="searchcars.php" method="POST">
<button type="submit" name="VIN" value="<?php echo ($row['VIN']); ?>">Delete Car</button>
</form>
私がすることをお勧めしたいですあなたはPDO、準備されたステートメント、そしてPOST対GETを読んでいます。
'mysql_ *'関数の使用をやめてください。それらは_years_のために廃止され、php7で完全に削除されます。さらに、ユーザが提供するデータとの文字列連結を介してクエリを作成することはありません。あなたはSQLインジェクションに広くオープンしています – CollinD
いくつかの非常に基本的なクエリのデバッグ方法については、「mysql_query($ sql)or die(mysql_error());」 –
一般的にはリンクを使って物事を削除するのは良い考えではありません。 –