2014-04-26 83 views
0

我想刪除表中的所有記錄工作不叫user_enrole.I正在使用此查詢刪除查詢在MySQL

DELETE * FROM user_enrole 

我覺得我的查詢語法是沒有錯的,但它給我錯誤說

#1064 - 您的SQL語法錯誤;檢查對應於你的MySQL服務器版本正確的語法在行使用 附近「* FROM user_enrole」 1

我已經翻了一番檢查我的語法我不能夠弄清楚了什麼錯誤可以手動請有人指出。

是因爲這張表與使用表有什麼關係而發生?

+3

刪除「近「*」告訴你你的錯誤在哪裏開始 – MISJHA

回答

3

您不需要在刪除中使用星號。只要做DELETE FROM user_enrole刪除所有記錄。

如果你想刪除一個或多個條件過濾特定的記錄,你會指定WHERE子句中的條件,像這樣:

DELETE FROM user_enrole 
WHERE somecolumn > 1 
AND anothercolumn = 'Username' 
0

當你寫SELECT * FROM...*意味着一切,即各個領域。行的所有部分。刪除時使用相同的語法是沒有意義的,因爲您只能刪除整行。這就是爲什麼語法是DELETE FROM...

0

我現在正在爲此提出意見,因爲我有同樣的問題。當我慷慨地給出答案時,它沒有幫助。大概是因爲這個問題沒有給所有相關的腳本的完整描述:HTML,JAVASCRIPT,PHP等 下面是正確的PHP腳本的結構我使用的數據庫表

<?php 
$servername = "localhost"; 
$username = "user"; 
$password = "0007"; 
$dbname = "CRCSystems"; 
// Create connection 
$conn = mysqli_connect($servername, $username, $password, $dbname); 
// Check connection 
if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 
$tblname = test_input($_POST["tblname"]); 
$names = test_input($_POST["names"]); 
    function test_input($data) { 
    $data = trim($data); 
    $data = stripslashes($data); 
    $data = htmlspecialchars($data); 
    return $data; 
} 
$sql = "SELECT * FROM $tblname WHERE Names = '$names'"; 
if (mysqli_query($conn, $sql)) { 
    $result = mysqli_query($conn, $sql); 
    $row = mysqli_fetch_row($result); 
    if ($row) { 
     $sql = "DELETE FROM $tblname WHERE Names = '$names'"; 
     $result = mysqli_query($conn, $sql); 
     echo 1;   //record deleted  
    } else { 
     echo 0;   //record does not exist 
    } 
} 
mysqli_close($conn); 
?>