Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для ulitrofiolet
0 / 0 / 0
Регистрация: 14.11.2012
Сообщений: 28
MySQL

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

29.11.2015, 17:37. Показов 1509. Ответов 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 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru