The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Формирование запроса"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"Формирование запроса"  
Сообщение от BaldyMan email(??) on 24-Янв-08, 17:50 
Всем привет!
не могу понять почему не едут лыжи... Совсем запутался...
Вот кусок кода:

$db = mysql_connect($dbhost, $dbuser, $dbpass) or die("Cannot  connect to database on ".$dbhost);
mysql_select_db($dbname) or die("Cannot select database ".$dbname);
$sql = 'INSERT INTO `sq_stat`.`auth` `cl_ip`,`cl_mac`,`fam`,`nam`,`otch`,`tr_lim`,`cl_stat`) VALUES ';
$sql .= '('.$cl_ip.', '.$cl_mac.', '.$fam.', '.$nam.', '.$otch.', '.$tr_lim.', '.$cl_stat.');';
$res = mysql_query($sql) or die("Cannot execute query ".$sql);
mysql_free_result($res);
mysql_close();

Что я неправильно написал в запросе ???
Не работает так как написано, а если сделать так
$sql = 'INSERT INTO `sq_stat`.`auth` (`cl_ip`, `cl_mac`, `fam`, `nam`, `otch`, `tr_lim`, `cl_stat`) VALUES
(\'77.34.130.19\', \'\', \'cat\', \'cat\', \'cat\', \'0\', \'1\');';

то работает :(

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Формирование запроса"  
Сообщение от tux2002 email on 25-Янв-08, 08:00 
$sql = 'INSERT INTO `sq_stat`.`auth` <Скобка где :?))>`cl_ip`,`cl_mac`,`fam`,`nam`,`otch`,`tr_lim`,`cl_stat`) VALUES $cl_ip.', '.$cl_mac.', '.$fam.', '.$nam.', '.$otch.', '.$tr_lim.', '.$cl_stat.');'

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Формирование запроса"  
Сообщение от GD on 25-Янв-08, 09:17 
>$sql = 'INSERT INTO `sq_stat`.`auth` <Скобка где :?))>`cl_ip`,`cl_mac`,`fam`,`nam`,`otch`,`tr_lim`,`cl_stat`) VALUES $cl_ip.', '.$cl_mac.', '.$fam.', '.$nam.', '.$otch.', '.$tr_lim.', '.$cl_stat.');'

со скобками там все в порядке,
а вот кавычки вокруг текстовых значений почему то везде пропущены

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Формирование запроса"  
Сообщение от tux2002 email on 25-Янв-08, 13:37 
>>$sql = 'INSERT INTO `sq_stat`.`auth` <Скобка где :?))>`cl_ip`,`cl_mac`,`fam`,`nam`,`otch`,`tr_lim`,`cl_stat`) VALUES $cl_ip.', '.$cl_mac.', '.$fam.', '.$nam.', '.$otch.', '.$tr_lim.', '.$cl_stat.');'
>
>со скобками там все в порядке,
>а вот кавычки вокруг текстовых значений почему то везде пропущены

'INSERT INTO `sq_stat`.`auth` ???? `cl_ip`,`cl_mac`,`fam`,`nam`,`otch`,`tr_lim`,`cl_stat`) VALUES '

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Формирование запроса"  
Сообщение от GD on 25-Янв-08, 14:33 
>>>$sql = 'INSERT INTO `sq_stat`.`auth` <Скобка где :?))>`cl_ip`,`cl_mac`,`fam`,`nam`,`otch`,`tr_lim`,`cl_stat`) VALUES $cl_ip.', '.$cl_mac.', '.$fam.', '.$nam.', '.$otch.', '.$tr_lim.', '.$cl_stat.');'
>>
>>со скобками там все в порядке,
>>а вот кавычки вокруг текстовых значений почему то везде пропущены
>
>'INSERT INTO `sq_stat`.`auth` ???? `cl_ip`,`cl_mac`,`fam`,`nam`,`otch`,`tr_lim`,`cl_stat`) VALUES '

это что?

присмотритесь


$sql = 'INSERT INTO `sq_stat`.`auth`, `cl_ip`,`cl_mac`,`fam`,`nam`,`otch`,`tr_lim`,`cl_stat`) VALUES ';
$sql .= '('.$cl_ip.', '.$cl_mac.', '.$fam.', '.$nam.', '.$otch.', '.$tr_lim.', '.$cl_stat.');';

что быдет содержать переменная $sql если $cl_ip (и остальное) это строковая переменная (НЕ ЧИСЛО)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Формирование запроса"  
Сообщение от BaldyMan email(??) on 25-Янв-08, 17:24 
>что быдет содержать переменная $sql если $cl_ip (и остальное) это строковая переменная
>(НЕ ЧИСЛО)

Попобробнее пожалуста, а то я что-о совсем запутался...
все переменные, кроме $tr_lim - текстовые, только $tr_lim - число.
Может есть какая-нить функция для таких целей по аналогии из Borland C++ и Delphi типа AnsiQuotedStr() ???

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Формирование запроса"  
Сообщение от angra (ok) on 25-Янв-08, 22:24 
У вас две ошибки. Первое это пропущенная скобка, второе отсутствие кавычек для текстовых значений. Есть два решения второй проблемы
1. Если безопасность нас не волнует или данные уже проверены, то используем интерполяцию переменных в двойных кавычках:
$sql .= "('$cl_ip', '$cl_mac', '$fam', '$nam', '$otch', '$tr_lim', '$cl_stat')";
2. Если у нас пятый пых, то в нем по слухам наконец появился интерфейс prepare/execute. В таком случае мы сначала создаем запрос с параметрами в prepare, а потом выполняем его с подставлением значений в execute. Примера не напишу, так как давно с пыхом не работаю и последней версией была четверка.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру