我有一个四列的表格,其中一个保存用户输入的电子邮件地址。我试图使用PHP/SQL从“email”列中删除一封电子邮件,但前提是它与用户在我的“removeemail”表单中输入的内容匹配。如何使用带有变量的WHERE子句删除记录?
这里是我的表码:
<?php
require_once("connectvars.php");
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$query = "CREATE TABLE email_list (
id INT AUTO_INCREMENT,
first_name VARCHAR(20),
last_name VARCHAR(20),
email VARCHAR(60),
PRIMARY KEY (id))";
...
?>
删除电子邮件的形式:
<form method="post" action="removeemail.php">
<label for="email">Email address:</label><br/>
<input type="text" id="email" name="email" /><br/>
<input type="submit" name="submit" value="Remove" />
</form>
而且我的PHP来删除电子邮件:
<?php
require_once('connectvars.php');
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$email = $_POST['email'];
$query = "DELETE FROM email_list WHERE email = $email";
mysqli_query($dbc, $query) or die('Error querying database.');
echo 'Customer removed: ' . $email;
mysqli_close($dbc);
?>
我不断收到或每次尝试删除电子邮件时出于某种原因死于错误。 任何帮助将不胜感激!
用同样的方法*任何*数据是在SQL查询中使用 - [*与占位符*。](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)。 (占位符不仅可以防止恶意SQL注入,而且占位符也可以避免这种无用的引用问题,并且可以说查询更加整洁。) – user2864740
啊,SQL注入! HTTP://计算器。com/questions/60174/how-can-i-prevent-sql -injection-in-php –
@ user2864740占位符并不是魔力子弹,如果你不明白你为什么使用它,在那里。 – ollieread