Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 MySQL-删除一行,如何?_Php_Mysql_Rows - Fatal编程技术网

Php MySQL-删除一行,如何?

Php MySQL-删除一行,如何?,php,mysql,rows,Php,Mysql,Rows,有人能给我看一个MySQL中的查询,它可以从所有可用列中删除行 我使用此选项插入行: $sql = "INSERT INTO " . KEYS . " // KEYS is a constant (key, user_id, time, approved) VALUES ('" . $randkey . "', '" . $user_id . "', '" . $time . "', '0')"; 我现在需要与此相反的方法,删除创建的行。使用类似的语法sql=“del

有人能给我看一个MySQL中的查询,它可以从所有可用列中删除行

我使用此选项插入行:

$sql = "INSERT INTO " . KEYS . "          // KEYS is a constant
 (key, user_id, time, approved)
 VALUES ('" .  $randkey . "', '" . $user_id . "', '" .  $time . "', '0')";

我现在需要与此相反的方法,删除创建的行。

使用类似的语法sql=“delete FROM”。钥匙。“其中1=1”

将1=1替换为要删除行的条件,否则将删除所有行


此外,尽快摆脱将变量放入SQL的习惯也很好,因为这样会使代码容易受到攻击。研究如何使用参数化查询。

使用类似的语法sql=“DELETE FROM”。钥匙。“其中1=1”

delete from <table> where ....
将1=1替换为要删除行的条件,否则将删除所有行

此外,尽快摆脱将变量放入SQL的习惯也很好,因为这样会使代码容易受到攻击。查看使用参数化查询。

从何处删除。。。。
delete from <table> where ....
请记住,delete语句始终适用于整行

从何处删除。。。。


请记住,delete语句始终适用于整行

你能给我看看那些吗?我想删除该表中的所有内容,但提供的代码不会删除所有内容。为什么?1=1总是正确的。这将删除所有内容。TRUNCATE tablename将删除所有行并重置与该表关联的任何自动增量计数器;删除tablename将删除该表;ALTER tablename DROP COLUMN COLUMN NAME将从表中永久删除列。我不知道你要的是哪一个。你能给我看看吗?我想删除该表中的所有内容,但提供的代码不会删除所有内容。为什么?1=1总是正确的。这将删除所有内容。TRUNCATE tablename将删除所有行并重置与该表关联的任何自动增量计数器;删除tablename将删除该表;ALTER tablename DROP COLUMN COLUMN NAME将从表中永久删除列。不确定要删除哪一行。如果您知道要删除多少行,那么设置一个限制也是一个好主意。通常您只想删除一行,所以如果您的WHERE子句中有错误,或者上帝禁止,您忘记放一行,那么限制1可以帮您节省时间@ajacian81我不同意,这样你只会隐藏bug。@AlexanderMalakhov bug仍然存在,如果他打算删除一个特定的行,但查询实际上会删除多个行,那么很可能被删除的行不是他打算删除的行,并且可以观察到。比删除不成百上千行要好得多。@ AJAYAN81:考虑这个场景:用户点击“删除”-没有任何事情发生(在他的眼睛里),他打了几次-工作!ajacian81:我认为这些bug必须在开发过程中通过最少的测试来捕获。在这种罕见的情况下(在我从事db开发的4年中,我从来没有在生产中见过或听说过这种错误),当它发生时,您必须有备份(或者更好,像Oracle的闪回查询一样的smth)。如果开发人员/数据库管理员不同时执行这两项任务。。。我几乎不认为他们是专业人士。这种方法的问题在于——它会让人产生草率/不确定性——“哦,与其检查
WHERE
,不如把
LIMIT
”放进去。算了吧,这并不难——只要确保你已经涵盖了所有的PK/unique键列——只有几个条件。如果你知道要删除多少行,最好也设定一个限制。通常您只想删除一行,所以如果您的WHERE子句中有错误,或者上帝禁止,您忘记放一行,那么限制1可以帮您节省时间@ajacian81我不同意,这样你只会隐藏bug。@AlexanderMalakhov bug仍然存在,如果他打算删除一个特定的行,但查询实际上会删除多个行,那么很可能被删除的行不是他打算删除的行,并且可以观察到。比删除不成百上千行要好得多。@ AJAYAN81:考虑这个场景:用户点击“删除”-没有任何事情发生(在他的眼睛里),他打了几次-工作!ajacian81:我认为这些bug必须在开发过程中通过最少的测试来捕获。在这种罕见的情况下(在我从事db开发的4年中,我从来没有在生产中见过或听说过这种错误),当它发生时,您必须有备份(或者更好,像Oracle的闪回查询一样的smth)。如果开发人员/数据库管理员不同时执行这两项任务。。。我几乎不认为他们是专业人士。这种方法的问题在于——它会让人产生草率/不确定性——“哦,与其检查
WHERE
,不如把
LIMIT
”放进去。来吧,这没那么难-只要确保你涵盖了所有PK/唯一键列-只有几个条件。我不太明白,为什么它被否决了。是的,它是无趣的,而且措辞不好。。。那又怎样?我不太明白,为什么它被否决了。是的,它是无趣的,而且措辞不好。。。那又怎样?