簡體   English   中英

如何使用 PHP 從 MYSQL 表中刪除多行

[英]How to delete multiple rows from MYSQL table using PHP

我正在嘗試學習 php 並遇到了問題。 我會很感激任何幫助。

我有一個看起來像這樣的數據庫:

ID USER  AGE
1  name1 18
2  name2 19
3  name3 20
etc etc

我想刪除多條記錄。 這是我使用的代碼:

<?php
$username = "root";
$password = "";
$hostname = "localhost"; 

//connection to the database
$dbhandle = mysql_connect($hostname, $username, $password) 
 or die("Unable to connect to MySQL");
echo "Connected to MySQL<br>";

//select a database to work with
$selected = mysql_select_db("photo",$dbhandle) 
  or die("Could not select examples");

//execute 
echo "CONNECTED";
echo "</br>";

//Action
$delete_query = ("DELETE FROM _users WHERE age in(17,18,19)");

$result = mysql_query($delete_query);

echo 'Deleted';

mysql_close($dbhandle);
?>

當我通過查詢年齡列進行刪除時,它會刪除多行。

但是,當我這樣做時:

$delete_query = ("DELETE FROM _users WHERE USER in(name1,name2,name3)");

什么都沒發生。 是因為那些是字符串嗎? 我該如何解決?

謝謝!

查詢不正確:

DELETE FROM _users WHERE USER in ('name1','name2','name3');

必須引用字符串,否則 MySQL 會將它們視為字段名稱(或關鍵字)。 您的腳本中沒有錯誤處理,或者您會看到錯誤消息。 始終按如下方式編寫查詢:

$result = mysql_query(...) or die(mysql_error());

這將向您確切顯示查詢失敗的原因(或者如果沒有任何問題則繼續)。

DELETE FROM _users WHERE USER in(name1,name2,name3)

MySQL 認為 name1、name2 和 name3 是列。 引用它們。

使用單引號 '

 $delete_query = ("DELETE FROM _users WHERE `USER` in('name1','name2','name3')");

您需要將字符串括在引號中: WHERE USER in('name1', 'name2', 'name3')

用戶是一個字符串,您需要引用值:

$delete_query = ("DELETE FROM _users WHERE USER in('name1','name2','name3')");

是的,因為它們是字符串。 字符串需要正確引用,否則 MySQL 不會將它們視為字符串。 利用

$delete_query = ("DELETE FROM _users WHERE USER in('name1','name2','name3')");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM