powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Переменная в INSERT INTO VALUES
15 сообщений из 15, страница 1 из 1
Переменная в INSERT INTO VALUES
    #37626479
L-Wing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, если вопрос ламерский. Не смогла найти ответа, чего ему не нравится.
Разбираюсь с принципом работы на примерах.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
	// Создаем или открываем созданную ранее базу данных
	$db = new PDO('sqlite:test_db.db');

	// Создаем таблицу my_clients, если не найдена
	$db->query('CREATE TABLE IF NOT EXISTS my_clients (
			id INTEGER  NOT NULL PRIMARY KEY AUTOINCREMENT,
			name VARCHAR(255),
			surname VARCHAR(255) ,
			age integer  
	)');


Тут всё хорошо.

Далее пытаемся одно из значений ввести не напрямую, а через переменную.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
settype($i_age,"integer");
$i_age=25;

	// Вставляем две строки
	if ($db->query('INSERT INTO my_clients (name, surname, age) VALUES (\'Иван\', \'Пупкин\', $i_age)') > 0) {
		echo 'Inserted'."\n";
	}
	if ($db->query('INSERT INTO my_clients (name, surname, age) VALUES (\'Вася\', \'Пупкин\', 30)') > 0) {
		echo 'Inserted'."\n";
	}

	// Читаем эти две строки и выводим в окно браузера
	$st = $db->query('SELECT * FROM my_clients');
	$results = $st->fetchAll();

	foreach ($results as $row) {
		echo 'id = '.$row['id'].', name = '.$row['name'].', surname = '.$row['surname'].', age = '.$row['age']."\n";
	}



Вот во вторую строку "30" вводит без проблем, а в первую "25" не хочет! ЧТО ему не нравится в переменной $i_age ?!
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37626577
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L-Wing,

RTFM
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37626589
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37626996
RXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L-Wing,

Учите PHP. В частности почитайте про текстовые константы: одиночные и двойные кавычки.
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37627030
L-Wing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RXL,
во-первых, она не текстовая. Тип integer
во-вторых, перепробовала различные варианты ковычек (и одиночные, и двойные)... в лучшем случае он вместо числа 25 выводит туда "$i_age" (то есть не значение, а вот прям это... с долларом и выводит).
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37627043
L-Wing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pit_alex, Dmitry Arefiev
Я вас правильно поняла, что если уже связалась с PDO, то как с обычной переменной нельзя работать? Нужно через его представления о динамичных переменных копать?
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37627051
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L-Wingpit_alex, Dmitry Arefiev
Я вас правильно поняла ...
Я PHP использую по очень редким случаям, гораздо чаще Google. Вот набрал нашел ... :)
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37627118
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry Arefiev Я PHP использую по очень редким случаям, гораздо чаще Google. Вот набрал нашел ... :)

я еще реже :-)

L-Wing,

В приведенных ссылках есть примеры, может стоить их посмотреть? а по поводу L-Wingто как с обычной переменной нельзя работать? почитать что нибудь о работе со строками в PHP
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37627147
L-Wing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так в том то и проблема, что по логике PHP вроде должно работать. Но не работает.
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37627176
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L-Wing,

Логики как раз невидно, попробуйте в ввести в google что нибудь типа "php конкатенация строк" и прочитать первые ссылки
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37627234
L-Wing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, все-равно не понимаю причем здесь строка, если проблема в переменной класса integer.

Команда:
$db->query('INSERT INTO my_clients (name, surname, age) VALUES (\'Вася\', \'Пупкин\', 30)')
вставляет в age значение 30
а
$db->query('INSERT INTO my_clients (name, surname, age) VALUES (\'Иван\', \'Пупкин\', $i_age)')
не вставляет значение 25 (которое присвоено переменной $i_age

Хотя с точки зрения PHP, какая ему нафиг разница, число я написала или переменную, равную этому числу. ;(((((

ЗЫ. Да, я не профессиональный программист. Возможности обратиться к профи нет. Проект не коммерческий ни разу. Разбираться все-равно придется самой ;(
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37627275
pit_alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L-Wing,


Код: php
1.
2.
3.
4.
$i_age=25;
$sth = $db->prepare('INSERT INTO my_clients (name, surname, age) VALUES (\'Иван\', \'Пупкин\', :i_age)');
$sth->bindParam(':i_age', $i_age, PDO::PARAM_INT);
$sth->execute();


или


Код: php
1.
$db->query('INSERT INTO my_clients (name, surname, age) VALUES (\'Иван\', \'Пупкин\', {$i_age})')
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37627305
L-Wing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за помощь.
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37627816
RXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L-Wing,

Чтобы не было вопросов и удивлений, сразу отвечу, что pit_alex привел правильную форму работы и ее и стоит придерживаться.

Вы же на мое сообщение вы ответили неверно, т.к. явно думали о SQL, в то время как пишете на PHP и по его правилам формируются строки. Интернет - штука не прощающая дилетантство. Если сайт будет с дырками, его легко сломают или он просто сам будет работать нестабильно. Т.ч. все же рекомендую сперва изучить язык, а потом на нем писать. А коммерческий проект или нет - знаний это не отменяет.
...
Рейтинг: 0 / 0
Переменная в INSERT INTO VALUES
    #37639481
Новенький чайник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pit_alex,
Поясните пожалуйста по второй предложенной форме использования
В случае строковой переменной на него выскакивает warning

А вот если обрамлять строку изнутри одинарными кавычками например: "'строка'", то нормально съедает
Это нормально? где прочитать про это?
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Переменная в INSERT INTO VALUES
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]