Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
алкокодер
 Аватар для UnsKneD
157 / 153 / 41
Регистрация: 27.12.2012
Сообщений: 550

SQL, использовать переменную в качестве имени таблицы

19.11.2013, 06:58. Показов 3607. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
PHP
1
mysql_query("INSERT INTO $_var (id) VALUES ('$id')");
Понятно что так работать не может, интересно как тут использовать PREPARE и EXECUTE.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.11.2013, 06:58
Ответы с готовыми решениями:

Как из php передать в sql переменную, как название новой таблицы?
Нужно создавать новую таблицу с именем которое передаст php скрипт $host='localhost'; // имя хоста $database='test'; // имя базы данных...

Как использовать строку в качестве имени
Подскажите как можно описать следующие textBox1.KeyPress += textBox_KeyPress; textBox2.KeyPress += textBox_KeyPress; ..... ...

Как использовать строку в качестве имени файла
суть задачи такова: ввожу с клавиатуры строку к примету text.txt и в дальнейшем должна использоваться как имя файла который я открой через...

7
алкокодер
 Аватар для UnsKneD
157 / 153 / 41
Регистрация: 27.12.2012
Сообщений: 550
22.11.2013, 11:38  [ТС]
ап чтоли
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
22.11.2013, 15:05
Цитата Сообщение от UnsKneD Посмотреть сообщение
Понятно что так работать не может
Нет, не понятно. Почему это вдруг не может?
1
60 / 56 / 5
Регистрация: 17.08.2011
Сообщений: 244
22.11.2013, 15:11
id - он же обычно INT, одинарные кавычки уберите - тогда будет работать. а так вы числовому полю пытаетесь текст присвоить - sql на такое обычно ругается
1
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
23.11.2013, 00:31
Цитата Сообщение от Alex_VP Посмотреть сообщение
sql на такое обычно ругается
обычно ему на такое пофигу, он преобразовывает в число и все
1
алкокодер
 Аватар для UnsKneD
157 / 153 / 41
Регистрация: 27.12.2012
Сообщений: 550
23.11.2013, 04:57  [ТС]
Alex_VP, а мне не id нужен, id - целое, мне нужно подставлять разные названия таблиц.

Добавлено через 2 часа 29 минут
Вопрос решён, всем спасибо!

вот что было нужно
PHP
1
2
3
4
session_start();
    $id = $_POST['id'];
    $login = $_SESSION['login'];
    mysql_query("INSERT INTO {$login} (id) VALUES ($id)");
0
60 / 56 / 5
Регистрация: 17.08.2011
Сообщений: 244
24.11.2013, 15:58
Цитата Сообщение от KOPOJI Посмотреть сообщение
обычно ему на такое пофигу, он преобразовывает в число и все
не, не пофиг... неоднократно уже натыкался на это, когда виной всему были одинарные кавычки (отсутствие их для текстового значения, и присутствие при числовом значении) в запросе. Поэтому теперь всегда, если что-то не срабатывает - в первую очередь смотрю на них. Почему? да потому что id=2 совсем не то же, что id='2'. Не помню точно сейчас, с чем там id сравнивается, то ли с кодом литеры '2', то ли ещё с чем, но однозначно не имеющем значение 2.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
24.11.2013, 16:10
Цитата Сообщение от Alex_VP Посмотреть сообщение
Почему? да потому что id=2 совсем не то же, что id='2'. Не помню точно сейчас, с чем там id сравнивается, то ли с кодом литеры '2', то ли ещё с чем, но однозначно не имеющем значение 2.
У кого то видел подпись "Если вы не знаете, как это работает, то, возможно, это и не работает". В вашем случае наоборот - если вы не знаете, как это работает, это не значит, что это не работает.
Я говорю, ему на это пофигу, он преобразует в число. Тоже самое, что и в php, будет произведено неявное приведение типов. Прежде чем уверять в чем-то, сначала попробуйте выполнить, ок?
MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
mysql> USE `test`;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
 
Database changed
mysql> SELECT * FROM `users`;
+---------+-------+------+-----------------+--------+
| user_id | login | pass | activation_code | status |
+---------+-------+------+-----------------+--------+
|       1 | test  | test | test            |      1 |
|       4 | test1 | test | test            |      1 |
|       5 | test2 | test | test            |      1 |
|       6 | test3 | test | test            |      1 |
+---------+-------+------+-----------------+--------+
4 rows in set (0.00 sec)
 
mysql> SHOW WARNINGS;
Empty set (0.00 sec)
 
mysql> SELECT * FROM `users` WHERE `user_id` = 4;
+---------+-------+------+-----------------+--------+
| user_id | login | pass | activation_code | status |
+---------+-------+------+-----------------+--------+
|       4 | test1 | test | test            |      1 |
+---------+-------+------+-----------------+--------+
1 row in set (0.00 sec)
 
mysql> SHOW WARNINGS;
Empty set (0.00 sec)
 
mysql> SELECT * FROM `users` WHERE `user_id` = '4';
+---------+-------+------+-----------------+--------+
| user_id | login | pass | activation_code | status |
+---------+-------+------+-----------------+--------+
|       4 | test1 | test | test            |      1 |
+---------+-------+------+-----------------+--------+
1 row in set (0.00 sec)
 
mysql> SHOW WARNINGS;
Empty set (0.00 sec)
 
mysql> SELECT * FROM `users` WHERE `user_id` = 'f';
Empty set (0.00 sec)
 
mysql> SHOW WARNINGS;
Empty set (0.00 sec)
 
mysql> SELECT * FROM `users` WHERE `user_id` = f;
ERROR 1054 (42S22): Unknown column 'f' in 'where clause'
mysql> SHOW WARNINGS;
+-------+------+--------------------------------------+
| Level | Code | Message                              |
+-------+------+--------------------------------------+
| Error | 1054 | Unknown column 'f' in 'where clause' |
+-------+------+--------------------------------------+
1 row in set (0.00 sec)
 
mysql>
Добавлено через 3 минуты
Даже вот вам точнее пример. Несмотря на предупреждение в запросе, он будет выполнен, строка будет приведена к целому типу
MySQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
mysql> UPDATE `users` SET `status` = 0 WHERE `user_id` IN (5,6);
Query OK, 2 rows affected (0.05 sec)
Rows matched: 2  Changed: 2  Warnings: 0
 
mysql> SELECT * FROM `users`;
+---------+-------+------+-----------------+--------+
| user_id | login | pass | activation_code | status |
+---------+-------+------+-----------------+--------+
|       1 | test  | test | test            |      1 |
|       4 | test1 | test | test            |      1 |
|       5 | test2 | test | test            |      0 |
|       6 | test3 | test | test            |      0 |
+---------+-------+------+-----------------+--------+
4 rows in set (0.00 sec)
 
mysql> SELECT * FROM `users` WHERE `status` = 'f';
+---------+-------+------+-----------------+--------+
| user_id | login | pass | activation_code | status |
+---------+-------+------+-----------------+--------+
|       5 | test2 | test | test            |      0 |
|       6 | test3 | test | test            |      0 |
+---------+-------+------+-----------------+--------+
2 rows in set, 1 warning (0.00 sec)
 
mysql> SHOW WARNINGS;
+---------+------+---------------------------------------+
| Level   | Code | Message                               |
+---------+------+---------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'f' |
+---------+------+---------------------------------------+
1 row in set (0.00 sec)
 
mysql>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.11.2013, 16:10
Помогаю со студенческими работами здесь

Не удаётся использовать переменную в качестве размерности массива
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Дело в том, что я в массиве(векторе) в качестве размерности попытался...

Как в getExtra использовать стринговую переменную в качестве параметра?
Имею: Button button1 = (Button)findViewById(R.id.buttonone); button1.setOnClickListener(new OnClickListener() { ...

Как создать переменную типа int исспользуя в качестве имени значение строковой переменной.
есть переменная типа string в которой допустим хранится значение: "file001" как объявить\создать переменную типа int исспользуя в...

Как правильно использовать переданное значение кнопки в качестве имени селекта?
есть такая функция function chek( idn ) { sel=document.f3.ustr.value document.f3.sel.disabled=false } есть радио кнопки,...

Почему нельзя использовать имя целочисленной переменной в качестве имени целочисленного массива?
помогите разобраться #include <iostream> using namespace std; int main () { int *array; array; // имя массива есть...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru