Аватар для ulitrofiolet
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 28
MySQL

Ошибка при подстановке данных в запрос

29.11.2015, 17:37. Показов 1567. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер.. перейду сразу к телу.
Есть кусок кода на обновление записи в базе
PHP
1
2
3
4
5
6
7
8
9
10
function update_item()
{
$title = mysql_escape_string( $_POST['title'] );
$description = mysql_escape_string( $_POST['description'] );
$query = "UPDATE items SET LectionTitle='".$title."', IncludedFileID='".$description."'
WHERE id=".$_GET['id'];
mysql_query ( $query );
echo $query;
die();
}
Так же имеется код с формами редактирования
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function get_edit_item_form()
{
echo '<h2>Редактировать</h2>';
$query = 'SELECT * FROM lection WHERE id='.$_GET['id'];
$res = mysql_query( $query );
$item = mysql_fetch_array( $res );
echo '<form name="editform" action="'.$_SERVER['PHP_SELF'].'?action=update&id='.$_GET['id'].'" method="POST">';
echo '<table>';
echo '<tr>';
echo '<td>Наименование</td>';
echo '<td><input type="text" name="title" value="'.$item['LectionTitle'].'"></td>';
echo '</tr>';
echo '<tr>';
echo '<td>Описание</td>';
echo '<td><textarea name="description">'.$item['IncludedFileID'].'</textarea></td>';
echo '</tr>';
echo '<tr>';
echo '<td><input type="submit" value="Сохранить"></td>';
echo '<td><button type="button" onClick="history.back();">Отменить</button></td>';
echo '</tr>';
echo '</table>';
echo '</form>';
}
Внимание вопрос, если в поля LectionTitle и IncludedFileID ставить напрямую значения, то есть
PHP
1
LectionTitle  = 'e', IncludedFileID='1'
то все срабатывает, данные в базе обновляются.
Как только пытаюсь засунуть туда переменные - все ложится и ничего не происходит.
выводил через echo переменную с запросом, когда вставлял переменные, получилось:
SQL
1
UPDATE `lection` SET `LectionTitle` = 'fwfw', `IncludedFileID` = '23535' WHERE id=131
Но в базе упорно этого нет и он просто обнуляет поля.
Если есть идеи - буду благодарен, спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.11.2015, 17:37
Ответы с готовыми решениями:

Ошибка в имени таблицы при подстановке в запрос переменной
&lt;?php $link = mysql_connect('sql-4.radyx.ru', 'connections611','sdap3b6ii1') or die(mysql_error()); mysql_select_db('connections611')...

Ошибка при подстановке параметра в sql запрос (python3.6 + sqlite3)
При подстановке параметра в запрос появляется ошибка Traceback (most recent call last): File &quot;project.py&quot;, line 61, in...

Ошибка при подстановке переменной
Код должен копировать данные с одного документа и вставлять их в другой для расчета. Строка 1 выдает ошибку Subscript out of range....

31
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.11.2015, 17:44
Цитата Сообщение от ulitrofiolet Посмотреть сообщение
mysql_query ( $query );
замените на
PHP
1
mysql_query ( $query ) or die (mysql_error());
и посмотрите ошибки не выводит?
0
 Аватар для ulitrofiolet
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 28
29.11.2015, 17:54  [ТС]
Нет, на ошибки я проверял - все нормально.
PHP
1
2
$query = "UPDATE lection SET LectionTitle='2', IncludedFileID='".$description."'
WHERE id=".$_GET['id'];
Даже если делать так, то в первое поле зайдет двойка, а второе обнулится

Добавлено через 3 минуты
Могу добавить, что к примеру код на добавление новой записи - срабатывает.
PHP
1
2
3
4
5
6
7
8
9
function add_item()
{
$LectionTitle = mysql_escape_string( $_POST['LectionTitle'] );
$IncludedFileID = mysql_escape_string( $_POST['IncludedFileID'] );
$query = "INSERT INTO lection (LectionTitle, IncludedFileID) VALUES ('".$LectionTitle."', '".$IncludedFileID."');";
mysql_query ( $query );
    echo '<meta http-equiv="Refresh" content="2;url=./lection.php"/>'; 
die();
}
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.11.2015, 18:20
Цитата Сообщение от ulitrofiolet Посмотреть сообщение
а второе обнулится
что значит обнулится? если вы имеете ввиду - ноль, то тут один вариант не совпадают типы данных
0
 Аватар для ulitrofiolet
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 28
29.11.2015, 18:24  [ТС]
Цитата Сообщение от Виталюска Посмотреть сообщение
что значит обнулится? если вы имеете ввиду - ноль, то тут один вариант не совпадают типы данных
Да, я имею ввиду ноль

Попробовать поставить везде варчар?
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.11.2015, 18:27
ulitrofiolet, какой тип данных у ячейки в БД?
0
 Аватар для ulitrofiolet
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 28
29.11.2015, 18:29  [ТС]
Цитата Сообщение от Виталюска Посмотреть сообщение
ulitrofiolet, какой тип данных у ячейки в БД?
LectionTitle char(255)
IncludedFileID int(5)
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.11.2015, 18:35
ulitrofiolet, попробуй
PHP
1
$description = (int) $_POST['description'] ;
0
 Аватар для ulitrofiolet
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 28
29.11.2015, 18:42  [ТС]
Цитата Сообщение от Виталюска Посмотреть сообщение
ulitrofiolet, попробуй
PHPВыделить код
1
$description = (int) $_POST['description'] ;
попробовал переписать
PHP
1
2
3
4
5
$title = mysql_escape_string( $_POST['title'] );
$description = mysql_escape_string( $_POST['description'] );
$FID = (int)$description;
$query = "UPDATE lection SET LectionTitle='$title', IncludedFileID='$FID'
WHERE id=".$_GET['id'];
до лампочки
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.11.2015, 18:44
Цитата Сообщение от ulitrofiolet Посмотреть сообщение
$query = "UPDATE lection SET LectionTitle='$title', IncludedFileID='$description'
а тут заменить на
Цитата Сообщение от ulitrofiolet Посмотреть сообщение
$FID
0
 Аватар для ulitrofiolet
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 28
29.11.2015, 18:45  [ТС]
Цитата Сообщение от Виталюска Посмотреть сообщение
Сообщение от ulitrofiolet
$query = "UPDATE lection SET LectionTitle='$title', IncludedFileID='$description'
а тут заменить на
Сообщение от ulitrofiolet
$FID
да - поправил, все ровно нет)
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.11.2015, 19:04
ulitrofiolet, а что показывает
PHP
1
echo $query;
Добавлено через 3 минуты
да и что показывает
PHP
1
var_dump($_POST);
0
 Аватар для ulitrofiolet
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 28
29.11.2015, 19:04  [ТС]
Цитата Сообщение от Виталюска Посмотреть сообщение
ulitrofiolet, а что показывает
PHPВыделить код
1
echo $query;
PHP
1
2
$query = "UPDATE lection SET LectionTitle='Лол', IncludedFileID='".$FID."'
WHERE id=".$_GET['id'];
во второе поле ввел 2r
SQL
1
UPDATE lection SET LectionTitle='Лол', IncludedFileID='2' WHERE id=5
HTML5
1
array(2) { ["title"]=> string(6) "Лол" ["description"]=> string(3) "g34" }
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.11.2015, 19:08
Цитата Сообщение от ulitrofiolet Посмотреть сообщение
["description"]=> string(3) "g34" }
это для int вернет 0
0
 Аватар для ulitrofiolet
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 28
29.11.2015, 19:10  [ТС]
Цитата Сообщение от Виталюска Посмотреть сообщение
"description"]=> string(3) "g34" }
Но так, мы же преобразовываем потом в инт? разве нет?
PHP
1
$FID=(int)$description;
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.11.2015, 19:11
Цитата Сообщение от ulitrofiolet Посмотреть сообщение
разве нет?
нет
0
 Аватар для ulitrofiolet
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 28
29.11.2015, 19:12  [ТС]
Цитата Сообщение от Виталюска Посмотреть сообщение
нет
Как быть подскажите пожалуйста
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.11.2015, 19:16
попробуй выведи после таких вводных данных
PHP
1
echo $FID;
Добавлено через 37 секунд
Цитата Сообщение от ulitrofiolet Посмотреть сообщение
Как быть подскажите пожалуйста
не вводить буквы, только числа

Добавлено через 2 минуты
HTML5
1
<input type='number' name='description' value=''>
0
 Аватар для ulitrofiolet
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 28
29.11.2015, 19:17  [ТС]
Цитата Сообщение от Виталюска Посмотреть сообщение
echo $FID;
Если вводить в формате 44t
то выдает 44

Если rr43
то выдает 0
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
29.11.2015, 19:19
Цитата Сообщение от ulitrofiolet Посмотреть сообщение
Если вводить в формате 44t
то выдает 44
Если rr43
то выдает 0
так и есть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.11.2015, 19:19
Помогаю со студенческими работами здесь

Sql запрос на обновление ошибка при передаче данных из поля
Я составил sql запрос и хотел бы передать из edit1.text числовое значение для запроса, выдаёт ошибку: &quot;несоответствие типов данных в...

Вопрос по подстановке данных в access
Здравствуйте! Мне дано было задание создать базу данных: 1. Создать 3 таблицы, это я сделал. 2. Создать схему данных связав таблицы...

Ошибка при внесении записи в базу данных (вложенный запрос вернул больше одного значения)
Когда вношу новую запись, возникает ошибка: Вложенный запрос вернул больше одного значения. Это запрещено, когда вложенный запрос следует...

При подстановке в один столбец, автоподстановка в другой.
введение: есть табличка &quot;Запись на прием к врачу&quot; В ней мастером подстановки берутся врачи, пациенты и т.д из других таблиц. Но в...

Выпадающий список - изначальное значение в ячейке при подстановке в неё списка
Прошу помощи, в приведенном ниже примере если ячейка B8 =&quot;да&quot;, то в ячейку B9 подставляется список tovar_1, если значение &quot;нет&quot;,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru