freed-master
21.03.2009 - 21:14
Пытаюсь записать код сессии в БД, но что-то не выходит.
Создал таблицу
session с полем
id_session (ТЕХТ)
В начало страницы
ххх.php всавляю код:
Код |
<?php session_start(); include_once("config.php"); $id_session = session_id(); mysql_query("INSERT INTO `session` SET `id_session`='".$id_session."'", $sql) or die ("Ошибка запроса: ".mysql_error()); ?> |
Запускаю, а он мне выдает:
Цитата |
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\localhost\www\ххх.php on line 5 |
Что с этим можно по-делать?
Спустя 14 минут, 39 секунд (21.03.2009 - 20:29) kirik написал(а):
freed-master, значит как-то криво сделано подключение к БД. Смотри, где задается $sql.
Спустя 14 минут, 23 секунды (21.03.2009 - 20:43) sergeiss написал(а):
И еще, плюс к тому, что kirik сказал... Порядок аргументов в функции mysql_query, вроде как, неправильный.
Спустя 7 минут, 1 секунда (21.03.2009 - 20:50) freed-master написал(а):
Вроде разобрался.
А вобще это нормально использовать код сессии как идентификатор пользователя? Может ли этот код повторяться?
Спустя 9 минут, 19 секунд (21.03.2009 - 21:00) sergeiss написал(а):
Ну, вообще-то, сессии и были созданы для уникальной идентификации юзеров. Так что код сессии не должен повторяться. Число уж слишком большое, вероятность его повтора маленькая.
Спустя 10 минут, 28 секунд (21.03.2009 - 21:10) freed-master написал(а):
А теперь вот какая бяка получается - при каждой перезагрузге страницы в БД записыватся еще лдин такой же код. Идея такая:
Код |
$ses = mysql_query($query);
if(mysql_num_rows($ses)>0) { ??? } |
Но что вместо ??? никак не соображу.
Спустя 1 час, 4 минуты, 11 секунд (21.03.2009 - 22:14) sergeiss написал(а):
Тебе надо внимательно почитать хэлп по MySQL, изучить все возможности INSERT. Там есть еще "довесок" в виде "ON DUPLICATE KEY UPDATE ...."
Спустя 54 минуты, 39 секунд (21.03.2009 - 23:09) freed-master написал(а):
Подскажите как это понимать:
Цитата |
Если вы указываете ON DUPLICATE KEY UPDATE, и производится вставка строки, которая вызывает ошибку дублирующегося первичного (PRIMARY) или уникального (UNIQUE) ключа, то вполняется UPDATE старой строки. Например: mysql> INSERT INTO table (a,b,c) VALUES (1,2,3) --> ON DUPLICATE KEY UPDATE c=c+1;
|
Т.е. эта функция работает только для первичных и уникальных ключей?
Спустя 38 минут, 53 секунды (21.03.2009 - 23:48) Sylex написал(а):
freed-master
UPDATE выполняется в случае дублирования ключа... иначе всегда INSERT будет проходить... что не понятного?
Спустя 12 часов, 17 минут, 17 секунд (22.03.2009 - 12:05) freed-master написал(а):
Просто хотел уточнить что это работает ТОЛЬКО для первичных и уникальных ключей...
_____________
Всем, кто заинтересован, могу помочь начать
зарабатывать на forex.
Пишите в личку или на e-mail:
flash-dirt@yandex.ru