PHP中要删除的SQL查询
我有下面的代码,但无法让它删除记录,我想我可能遗漏了什么PHP中要删除的SQL查询,php,mysql,sql,sqlite,Php,Mysql,Sql,Sqlite,我有下面的代码,但无法让它删除记录,我想我可能遗漏了什么 <?php //Open Database class MyDB extends SQLite3 { function __construct() { $this->open('Name.db'); } } $db = new MyDB(); if(!$db){ echo $db->lastErrorMsg(); } //Select the Name Table
<?php
//Open Database
class MyDB extends SQLite3
{
function __construct() {
$this->open('Name.db');
}
}
$db = new MyDB();
if(!$db){
echo $db->lastErrorMsg();
}
//Select the Name Table
$sql =<<<EOF
SELECT * FROM Name;
EOF;
$ret = $db->query($sql);
// Display The Data In a Table
echo "<table border='1' cellpadding='10'>";
echo "<tr><th>First name</th> <th>Last Name</th> <th>Gender</th> <th></th>
<th></th></tr>";
while($row = $ret->fetchArray(SQLITE3_ASSOC) ){
echo "<tr>";
echo '<td>' . $row['FirstName'] . '</td>';
echo '<td>' . $row['LastName'] . '</td>';
echo '<td>' . $row['Gender'] . '</td>';
echo '<td><a href="name.php?id=' . $row['FirstName'] . '">Delete</a>
</td>';
echo "</tr>";
}
// check for id to be set and if it is delete the matching row from database
if (isset($_GET['id']))
{
// puts the id value in the variable
$id = $_GET['id'];
// delete the entry
$db->exec("Delete FROM Name WHERE VALUES TeamName=$id;");
header("Location: name.php");
} else {
header("Location: name.php");}
$db->close();
?>
不能删除某些值,可以更新它们,也可以删除整行。试试看
$db->exec("DELETE FROM Name WHERE TeamName=$id;");
为安全起见,您需要做的另一件事是修改$id变量,否则等待它发生会很麻烦。1)检查您使用的用户是否具有删除权限
2) $db->exec(“从
Name
中删除,其中TeamName
=”“$id.”) 警告:这有一些严重问题,因为用户数据在查询中使用。尽可能使用事先准备好的陈述。在任何用户提供的数据都指定有?
或:name
指示符的情况下,这些操作非常简单,稍后将根据您使用的是哪个指示符,使用绑定参数或执行
填充指示符。切勿将$\u POST
、$\u GET
或任何用户数据直接放入查询中。您不能删除列值,只能删除整行。请查阅有关的手册。随机编造语法并不是学习MySQL的有效方法。
$db->exec("DELETE FROM Name WHERE TeamName=$id;");