MySQL обновление столбца. Ошибка
Такой код:
$new = $_POST['inputval'];
$sql = "UPDATE 'tableName' SET 'RowName'=$new WHERE 'ID'=1";
Ошибка при обновлении через AJAX:
Error updating record: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''tableName' SET 'RowName'=Предзака�...' at line 1
Сам код брал из phpMyAdmin, такой запрос срабатывал отлично. переменная $new так же несёт в себе верную информацию. В чём ошибка?
Ответы (2 шт):
Автор решения: Denis640Kb
Файл запроса resp.php
→ Ссылка
Советую Вам использовать PDO для запросов.
Файл dbconnect.php // подключаемся к БД
try {
$dbh = new PDO('mysql:dbname=YourDB;host=YourHost;charset=utf8', 'UserName', 'UserPassword');
} catch (PDOException $e) {
die($e->getMessage());
}
?>
Файл запроса resp.php
<?php
require "dbconnect.php";
$new = $_POST['inputval'];
$sql = "UPDATE 'tableName' SET 'RowName' = :RowName WHERE 'ID'='1'"; // Запрос
$req = $dbh->prepare($sql);
$req->bindValue(':RowName', $new, PDO::PARAM_STR);
$req->execute(); // Выполняем запрос
?>
<?php
//Если нет желания использовать PDO, используйте следующий синтаксис
$new = $_POST['inputval'];
$sql = "UPDATE 'tableName' SET 'RowName'=".$new." WHERE 'ID'=1";
Автор решения: Рома Хр
→ Ссылка
Проблема была в кавычках. Надо было их убрать везде в названиях столбцов и добавить в переменную.
$sql = "UPDATE tableName
SET RowName = '$new'
WHERE ID = 1";