У меня есть БД с таблицей в MySQL. Я пытаюсь вставить строку с несколькими запятыми, такими как Лондон, Индия, Япония, в один столбец.
Я попытался закодировать строку с помощью URLEncoder.encode (Лондон, Индия, Япония, «UTF-8») перед переходом к команде вставки, но это не сработало. Хотя результатом кодировщика было Лондон +% 2C + Индия +% 2C + Япония.
Если я удалю запятые и использую другой символ, например подчеркивание или точку с запятой, вставка работает нормально.
Может кто-нибудь подскажет. как я могу передать эту строку. Я много искал, некоторые предлагают заменить запятую на /, но даже это не сработало.
Я использую PHP, как показано ниже:
<?php
require_once("../dbconnect.php");
if (!$_REQUEST['table'] || !$_REQUEST['columns'] || !$_REQUEST['values']){
echo "No data found.";
exit;
}
if (isset($_REQUEST['table'])) {
$table= trim($_REQUEST['table']);
}
if (isset($_REQUEST['columns'])){
$columns = trim($_REQUEST['columns']);
}
if (isset($_REQUEST['values'])){
$values = trim($_REQUEST['values']);
$new_values = explode(',',addslashes($values));
$values = join("','",$new_values);
}
$query = "INSERT INTO $table ($columns) VALUES('$values')";
//echo $query;
$res = mysqli_query($conn,$query);
$Id = mysqli_insert_id($conn);
if (!$Id) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
} else{
echo "$Id";
}
exit;
?>
и вызывая его, используя нижеуказанный URL, для вставки данных insertData.php? table = tdata & columns = places, amount & values = URLEncoder.encode ("Лондон, Индия, Япония", "UTF-8") + "," + 500;
Тип данных столбца - Текст, а длина - пустая.
Когда я нажимаю URL, я получаю сообщение об ошибке ниже:
Не удалось успешно выполнить запрос ($ sql) из БД:
какую ошибку вы получаете и какой у вас код?
Вы отправляете строку, заключенную в кавычки (что-то вроде 'London,India,Japan')?
Кроме того, каков размер столбца, в который вы пытаетесь вставить текст?
пожалуйста, посмотрите обновленный код для всех ваших запросов
просто распечатайте $query после его создания, чтобы увидеть, что с ним не так. У вас проблемы с котировками, я уверен
Запрос представляет собой результат как INSERT INTO tdata (places, amount) VALUES ('London', 'India', 'Japan', 500), поэтому в основном вся строка разбита на 4 ввода разностных столбцов.
Как и в случае с @VladyslavMatviienko, в сообщении об ошибке измените $ sql на $ query.
@Andy Вот результат запроса INSERT INTO tdata (places, amount) VALUES ('London', 'India', 'Japan', 500)
Похоже, что количество значений не соответствует количеству столбцов. И опубликуйте результат запроса в сообщении, чтобы всем было легче его увидеть.




обновить свой вопрос добавить добавить код ..