[英]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.