Я продолжаю получать эту ошибку:
У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с «…» в строке 1.
- CakePHP 1.3 - Неизвестная колонка в разделе where
- Мой последний mysql db, может кто-нибудь проверить, правильно ли сделаны таблицы?
- mysql php с загрузкой файла вставить запись в базу данных
- SQL-запрос для расчета общего количества заказов в день?
- Разбейте количество (число) в записи и установите их как массив для выбора опций
Я знаю, что это что-то не так с моим полем «group», потому что, если я его удалю, моя таблица будет обновляться без каких-либо проблем.
Вот мой код формы:
<form enctype="multipart/form-data" action="products_import_confirmation.php" method="post"> <input type="hidden" name="MAX_FILE_SIZE" value="99999999" /> <center><table><br><br> <td>Prekės pavadinimas: <td><input type="text" name="name_p" value="<?php echo $name_p;?>"> <span class="error">* <?php echo $name_pErr;?></span></td> <tr> <td>Gamintojas:<td><input type="text" name="brand" value="<?php echo $brand;?>"> <span class="error">* <?php echo $brandErr;?></span></td> <tr> <td>Specifikacijos:<td><textarea style="resize:none" name="specs" rows="5" cols="60"><?php echo $specs;?></textarea> <span class="error">* <?php echo $specsErr;?></span></td> <tr> <td>Aprašymas:<td><textarea style="resize:none" name="about" rows="5" cols="60"><?php echo $about;?></textarea> <tr> <td>Kategorija:<td><select name="group" value="<?php echo $group;?>"> <option value="">Pasirinkite kategoriją</option> <option disabled>------------------</option> <option value="Telefonai">Telefonai</option> <option value="Planšetės">Planšetės</option> <option value="Kompiuteriai">Kompiuteriai</option> </select> <span class="error">* <?php echo $groupErr;?></span></td> <td><div><input name="image" accept="image/jpeg" type="file" /></div></td> <tr> </center></table> <td><div><input type="submit" value="Submit" /></div></td> </form>
И вот мое обновление для кода MySQL:
<?php require("/includes/connection_to_db.php"); mysql_query("SET NAMES 'utf8'"); session_start(); echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>"; if(isset($_GET['logout']) && $_GET['logout'] == "true"){ unset($_SESSION['user_id']); header("Location: index.php"); } if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) { // Temporary file name_p stored on the server $tmpname_p = $_FILES['image']['tmp_name']; // Read the file $fp = fopen($tmpname_p, 'r'); $image = fread($fp, filesize($tmpname_p)); $image = addslashes($image); fclose($fp); date_default_timezone_set('Europe/Vilnius'); $V_ID = mysql_real_escape_string($_SESSION['user_id']); $name_p = mysql_real_escape_string($_POST['name_p']); $group = mysql_real_escape_string($_POST['group']); $brand = mysql_real_escape_string($_POST['brand']); $specs = mysql_real_escape_string($_POST['specs']); $about = mysql_real_escape_string($_POST['about']); $date = date('Ymd H:i:s'); $query = "INSERT INTO prekės (V_ID, name, group, brand, specs, about, image, date) VALUES ($V_ID, '$name_p', $group, '$brand', '$specs', '$about', '$image', '$date')"; if(mysql_query($query)) { echo "Prekė ".$name." sėkmingai įkelta <br>"; echo "<a href=\"../main.php\">Grįžti</a>"; } else { echo "Įvyko klaida: ".mysql_error()."<br>"; echo "<a href=\"../products_import.php\">Grįžti</a>"; echo $date; echo $name_p; echo $brand; echo $specs; echo $about; echo $group; } } else { echo "Neužpildyti visi reikalaujami duomenys."; } mysql_close(); ?>
с<?php require("/includes/connection_to_db.php"); mysql_query("SET NAMES 'utf8'"); session_start(); echo "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>"; if(isset($_GET['logout']) && $_GET['logout'] == "true"){ unset($_SESSION['user_id']); header("Location: index.php"); } if (isset($_FILES['image']) && $_FILES['image']['size'] > 0) { // Temporary file name_p stored on the server $tmpname_p = $_FILES['image']['tmp_name']; // Read the file $fp = fopen($tmpname_p, 'r'); $image = fread($fp, filesize($tmpname_p)); $image = addslashes($image); fclose($fp); date_default_timezone_set('Europe/Vilnius'); $V_ID = mysql_real_escape_string($_SESSION['user_id']); $name_p = mysql_real_escape_string($_POST['name_p']); $group = mysql_real_escape_string($_POST['group']); $brand = mysql_real_escape_string($_POST['brand']); $specs = mysql_real_escape_string($_POST['specs']); $about = mysql_real_escape_string($_POST['about']); $date = date('Ymd H:i:s'); $query = "INSERT INTO prekės (V_ID, name, group, brand, specs, about, image, date) VALUES ($V_ID, '$name_p', $group, '$brand', '$specs', '$about', '$image', '$date')"; if(mysql_query($query)) { echo "Prekė ".$name." sėkmingai įkelta <br>"; echo "<a href=\"../main.php\">Grįžti</a>"; } else { echo "Įvyko klaida: ".mysql_error()."<br>"; echo "<a href=\"../products_import.php\">Grįžti</a>"; echo $date; echo $name_p; echo $brand; echo $specs; echo $about; echo $group; } } else { echo "Neužpildyti visi reikalaujami duomenys."; } mysql_close(); ?>
Как вы видите, я сделал некоторое эхо, чтобы проверить, получаю ли я свои данные, и все в порядке. Это только что-то плохое с «групповыми» данными. Есть идеи?
group
– зарезервированное ключевое слово, и оно использовало этот запрос.
Вы должны использовать backtics для зарезервированных слов как
`group`
Проверьте их список здесь.