Я пытаюсь удалить все строки из таблицы, но он не работает. когда я делаю echo $mydb->error;
это дает мне следующее:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM messages where from_user = ? and id = ?'
$user = 'currentuser'; if (isset($_POST['delete'])) { if(!empty($_POST['id'])){ $id = $_POST['id']; $mydb = new mysqli('localhost', 'root', '', 'database'); $stmt = $mydb->prepare("DELETE * FROM messages where from_user = ? and id = ? "); echo $mydb->error; $stmt->bind_param('ss', $user, $id); foreach ($_POST['id'] as $id) { $stmt->execute(); } echo"The Message deleted permanently"; } }
Должен быть
$stmt = $mydb->prepare("DELETE FROM messages WHERE from_user = ? AND id = ? ");
И я буду признателен за использование функций mysqli_*
вместо устаревших mysql_*
Кроме того, не должно быть *
для DELETE; это не правильный синтаксис.
Справка:
Синтаксис *
используется в сочетании с SELECT:
Если вы хотите удалить все сообщения пользователя:
$stmt = $mydb->prepare("DELETE FROM messages where from_user = ?"); $stmt->bind_param('s', $user); $stmt->execute();
Если вы хотите удалить все строки (будьте осторожны!) Из таблицы:
$stmt = $mydb->prepare("DELETE FROM messages"); $stmt->execute();