Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP中要删除的SQL查询_Php_Mysql_Sql_Sqlite - Fatal编程技术网

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;");