Intereting Posts
Как создать массив из этого набора результатов (вложенные категории, хранящиеся в базе данных с моделью обхода)? Невозможно настроить PHP cookie на одной странице Eclipse PDT и пользовательские аннотации PHPDoc PHP переименовывает ключи массива в многомерном массиве PHP слишком медленный, может ли кто-нибудь увидеть способ сделать это быстрее? Существуют ли инструменты парсера PHP DocBlock? Добавление календаря на мой сайт Преобразование всех типов смарт-котировок с помощью PHP openssl_verify и "error: 0906D06C: PEM-процедуры: PEM_read_bio: нет стартовой строки" Zend Multiselect Element отправляет только одно выбранное значение Добавление 10 минут к дате с mysql datetime и сравнение его с временем Отменить переменную сеанса при событии нажатия кнопки Столбец Mysql полностью работает в PhpMyadmin, но не с Php mysqli_query () Как проверить, существует ли веб-страница. jQuery и / или PHP Настройка сервера WAMP для отправки электронной почты

Как отображать ошибки для моего MySQLi-запроса?

Я использую следующий скрипт для обработки формы для добавления информации на мой сайт. Проблема, с которой я сталкиваюсь, заключается в том, что когда я отправляю форму, ничего не отправляется в базу данных, и ошибок нет. Как добавить отчет об ошибках в мой запрос?

<?php if (isset($_POST['itemdescription'])) {$itemdescription = $_POST['itemdescription'];}else {$itemdescription = '';} if (isset($_POST['itemnumber'])) {$itemnumber = $_POST['itemnumber'];}else {$itemnumber = '';} if (isset($_POST['sellerid'])) {$sellerid = $_POST['sellerid'];}else {$sellerid = '';} if (isset($_POST['purchasedate'])) {$purchasedatepre = $_POST['purchasedate'];$date = DateTime::createFromFormat("DF d, Y", $purchasedatepre);$purchasedate = date('Ym-d',strtotime($purchasedatepre));}else {$purchasedatepre = ''; $purchasedate = '';} if (isset($_POST['otherinfo'])) {$otherinfo = $_POST['otherinfo'];}else {$otherinfo = '';} if (isset($_POST['numberofitems'])) {$numberofitems = $_POST['numberofitems'];}else {$numberofitems = '';} if (isset($_POST['numberofitemsused'])) {$numberofitemsused = $_POST['numberofitemsused'];}else {$numberofitemsused = '';} if (isset($_POST['isitdelivered'])) {$isitdelivered = $_POST['isitdelivered'];}else {$isitdelivered = '';} if (isset($_POST['price'])) {$price = $_POST['price'];}else {$price = '';} $itemdescription = str_replace("'", "", "$itemdescription"); $itemnumber = str_replace("'", "", "$itemnumber"); $sellerid = str_replace("'", "", "$sellerid"); $otherinfo = str_replace("'", "", "$otherinfo"); include("connectmysqli.php"); mysqli_query($db,"INSERT INTO stockdetails (`itemdescription`,`itemnumber`,`sellerid`,`purchasedate`,`otherinfo`,`numberofitems`,`isitdelivered`,`price`) VALUES ('$itemdescription','$itemnumber','$sellerid','$purchasedate','$otherinfo','$numberofitems','$numberofitemsused','$isitdelivered','$price')"); // header('Location: stockmanager.php?&key='.$key); ?> 

Просто добавьте or die(mysqli_error($db)); в конце вашего запроса это приведет к ошибке mysqli.

  mysqli_query($db,"INSERT INTO stockdetails (`itemdescription`,`itemnumber`,`sellerid`,`purchasedate`,`otherinfo`,`numberofitems`,`isitdelivered`,`price`) VALUES ('$itemdescription','$itemnumber','$sellerid','$purchasedate','$otherinfo','$numberofitems','$numberofitemsused','$isitdelivered','$price')") or die(mysqli_error($db)); 

В качестве побочной заметки я бы сказал, что вы рискуете mysql injection , проверьте здесь. Как я могу предотвратить SQL-инъекцию в PHP? , Вы должны действительно использовать подготовленные заявления, чтобы избежать риска.

 mysqli_error() 

Как в:

 $sql = "Your SQL statement here"; $result = mysqli_query($sql) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error(), E_USER_ERROR); 

Ошибка триггера лучше, чем умереть, потому что вы можете использовать его для разработки и производства, это постоянное решение.

В целях развития вы можете добавить or die(mysqli_error()) до точки с запятой в вашей mysqli_query() .

Удостоверьтесь, что вы удалили это, прежде чем нажимать на производство, чтобы вы не публиковали информацию о своей базе данных.