Я пытаюсь разрешить УДАЛЕНИЕ сотрудников в базе данных. Я сохранил строку запроса, передаваемую в переменную с именем $ id. Когда я запускаю свой оператор SQL DELETE, он выводится, но не выводит и не распознает созданную мной переменную $ id. Любые идеи?
PHP
//QUERY STRING
"<td><a href='delete.php?id = " . $row['empid'] . "'>Delete</a></td>" .
//ID VARIABLE
$id = (isset($REQUEST['id']) ? $_REQUEST['id'] : '');
SQL
//SQL STATEMENT
$sql = "DELETE FROM employees WHERE empid= '" . $id . "';";
//WHAT ECHOS OUT IS BELOW
echo($sql);
//RUN SQL Command
mysqli_query($connect,$sql) or die(mysql_error());
print("User " . $id . " deleted from the database.");
print("Return to <a href='index.php'>Return To Main Page</a>");
УДАЛИТЬ ОТ сотрудников ГДЕ empid = '';
Когда я нажимаю кнопку «Удалить» из index.php, сотрудник, которого я пытался удалить, все еще там.
Я не вижу, где и как вы выполнили запрос и какой api используется. Все, что вы сделали, это повторили запрос.
@Issac Нет, никаких ошибок не возникает.
@Funk Forty Niner, только что добавил, спасибо.
теперь вы редактировали; эта функция ошибки не будет работать с mysqli_ api. Думаю, массив пуст.
Вы можете поделиться подробным кодом
О, теперь я понимаю; здесь проблема с неопределенным индексом. Сообщение об ошибке сообщило бы вам об этом.
Я новичок в MySQL, как мне убедиться, что у меня включен отчет об ошибках?
просто добавьте эти строки в PHP-код «error_reporting (E_ALL); ini_set ('display_errors', '1');»
Спасибо, @Parikshit Sharma!
Также перед подключением к базе данных: mysqli_report(MYSQLI_REPORT_ALL); См. php.net/manual/en/mysqli-driver.report-mode.php
Вы должны удалять данные только в запросе POST, а не в запросе GET. Имейте в виду, что поисковые системы будут переходить по ссылкам на запросы GET. Будьте готовы к тому, что все ваши данные будут удалены Google, когда он индексирует ваш сайт!
У вас также есть уязвимость SQL-инъекций в вашем коде (как и у большинства новых программистов). См. stackoverflow.com/questions/60174/…
@ Билл Карвин, это действительно полезно знать, я перейду на POST! Я ценю, что вы делитесь дополнительными знаниями, я обязательно запомню это.
Я вставил упомянутый выше код проверки ошибок, и теперь я получаю массу ошибок при запуске кода: Неперехваченное исключение 'mysqli_sql_exception' с сообщением 'В запросе / подготовленном операторе не используется индекс ......... ... Я сейчас занимаюсь этим ... Кроличья нора для новых программистов, лол






Вам нужно изменить эту строку
$id = (isset($REQUEST['id']) ? $_REQUEST['id'] : '');
к
$id = (isset($_REQUEST['id']) ? $_REQUEST['id'] : '');
Ага, вот и все. Спасибо, Саймон!
Выкидываются ли какие-нибудь ошибки? если да, то какие