Intereting Posts
Как добавить значение в массив внутри каждого метода объекта Collection Как читать ключевые слова Lightroom из файла изображения с помощью PHP? PHP – SQL выбрать первый столбец без данных передача данных в angular.js из PHP WordPress: добавьте дополнительную плату в корзину Могу ли я использовать функцию для возврата параметра по умолчанию в php? В PHP, как я могу добавить нумерованную цифровую строку и сохранить нулевое дополнение? mod_rewrite – добавить путь к переменной REQUEST_FILENAME Страница заказов WooCommerce добавляет пользовательский столбец пользователя Сжатие данных в php и распаковывание в javascript Разделите строку при сохранении разделителей и строки за пределами PHP array_chunk – разделение на основе переменной Связи с запросами Laravel5.1 (Eloquent ORM) Лучший способ получить первый и последний день в прошлом месяце? Отправка XML-ввода в WSDL с использованием SoapClient

Не удается обновить данные из базы данных MySQL

Это мои коды update.php. Я уже проверил другие php-файлы и не нашел проблем. Эти коды не имеют ошибки, но не могут обновлять данные в базе данных.

require_once "conn.php"; $conn=connect(); $db=connectdb(); $id= ""; $parcelno = ""; $items = ""; if(isset($_REQUEST['id'])){ $id= $_REQUEST['id']; } if(isset($_REQUEST['parcel'])){ $parcel = $_REQUEST['parcel']; } if(isset($_REQUEST['items'])){ $items = $_REQUEST['items']; } mysql_select_db($db,$conn) or die (mysql_error()."\n"); $sql="UPDATE parcel SET parcelno='$parcelno', items='$items' where id='$id'"; $result=@mysql_query($sql) or die(mysql_error()."\n"); 

Это код edit.php, который используется для формы обновления:

 <?php $ic = $_REQUEST["ic"]; require_once "conn.php"; $conn = connect(); $db = connectdb(); mysqli_select_db($conn,$db) or die (mysqli_error($conn)."\n"); $query_usr = "select * from parcel"; $usr = mysqli_query($conn,$query_usr) or die (mysqli_error($conn)."\n".$query_usr); $row_usr = mysqli_fetch_assoc($usr); ?> <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> body { background-color: #CCC; } </style> </head><body><center><p><a href="adminselect.php"><img src="image/header.png" width="800" height="200"></a></p></center> <form action="update.php" method="get"> <?php $sql = "SELECT * FROM parcel where ic = $ic"; $result1 = mysqli_query($conn,$sql); while ($row=mysqli_fetch_assoc($result1)){ ?> <center><table border="0"> <tr> <td colspan="3" bgcolor="#0066FF"><strong><center>Update Registration </strong></td> </tr> </tr> <tr> <td bgcolor="#0099FF">Parcel Number</td> <td>:</td> <td bgcolor="#FFFFFF"><input name="parcelno" type="text" id="parcelno" value="<?php echo $row["parcelno"];?>" size="50"></td> </tr> <tr> <td bgcolor="#0099FF">Items</td> <td>:</td> <td colspan="2" bgcolor="#FFFFFF"> <p> <label for="select"></label> <select name="items" size="1" id="items"> <option><?php echo $row["items"];?></option> <option>Pos Laju</option> <option>Pos Ekspress</option> <option>Skynet</option> <option>GDEX</option> <option>Nationwide Express</option> <option>FedEx</option> <option>UPS</option> </select> </p></td> </tr> <tr> <td>&nbsp;</td> <td>&nbsp;</td> <td colspan="2" bgcolor="#CCCCCC"> <input name="" type="submit" value="Update"></td> </tr> <?php }?> </table></center> </form></body></html> 

Я исследовал эту проблему почти полдня, и ничего не работает: /

Related of "Не удается обновить данные из базы данных MySQL"

Вы используете две разные переменные:

$parcelno в вашем запросе UPDATE

и $parcel = $_REQUEST['parcel'];

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


Добавьте отчет об ошибках в начало файла (ов) сразу после открытия <?php , что поможет во время предварительного тестирования.

 error_reporting(E_ALL); ini_set('display_errors', 1); 

Ваш существующий код открыт для SQL-инъекции . Используйте подготовленные заявления или PDO с подготовленными заявлениями .


Плюс, я цитирую nkchandra в комментарии +1 (если можно):

«Не имеет отношения к вашему вопросу, но FYI, PHPMyAdmin – это не база данных, а инструмент для взаимодействия с базой данных, такой как mysql в вашем случае»


Изменить: после прочтения вашего комментария кажется, что вам нужно будет переключиться на функции mysqli_ .

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

 <?php error_reporting(E_ALL); ini_set('display_errors', 1); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); $DB_HOST = "xxx"; // replace with yours $DB_USER = "xxx"; // replace with yours $DB_PASS = "xxx"; // replace with yours $DB_NAME = "xxx"; // replace with yours $conn = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME); if($conn->connect_errno > 0) { die('Connection failed [' . $conn->connect_error . ']'); } $id= ""; $parcelno = ""; $items = ""; if(isset($_REQUEST['id'])){ $id= mysqli_real_escape_string($conn,$_REQUEST['id']); } if(isset($_REQUEST['parcel'])){ $parcelno = mysqli_real_escape_string($conn,$_REQUEST['parcel']); } if(isset($_REQUEST['items'])){ $items = mysqli_real_escape_string($conn,$_REQUEST['items']); } $sql="UPDATE parcel SET parcelno='$parcelno', items='$items' where id='$id'"; $result=mysqli_query($conn,$sql) or die(mysqli_error()."\n"); if (!$result) { throw new Exception($conn->error); } else { echo "Success"; } mysqli_close($conn); // close the connection 

Плюс, в соответствии r3wt's комментарием r3wt's : вы также можете использовать:

 $result= $conn->query($sql) or die(mysqli_error()."\n"); 

вместо

 $result=mysqli_query($conn,$sql) or die(mysqli_error()."\n"); 
 <?php ini_set('display_errors', '1'); error_reporting(E_ALL ^ E_NOTICE); require_once "conn.php"; $conn=connect(); $db=connectdb(); $id= ""; $parcelno = ""; $items = ""; if(isset($_REQUEST['id'])){ $id= $_REQUEST['id']; } if(isset($_REQUEST['parcel'])){ $parcel = $_REQUEST['parcel']; } if(isset($_REQUEST['items'])){ $items = $_REQUEST['items']; } mysql_select_db($db,$conn) or die (mysql_error()."\n"); $sql="UPDATE parcel SET parcelno='".$parcel."', items='".$items."' where id='".$id."'"; $result=mysql_query($sql) or die(mysql_error()."\n"); ?> 

Попробуй это.

В вашем запросе есть проблема с переменной синтаксического анализа. Попробуй это:

 $sql="UPDATE parcel SET parcelno='" . $parcelno . "', items='" . $items . "' where id='" . $id . "'";