Вопрос по php + MySql

12 3
T
На сайте с 23.11.2005
Offline
298
1156

Вот код:

<?

$db_server = "localhost";

$db_username = "******_****";

$db_password = "*****";

$db_database = "******_countries";

$db_table = "useronline";

$handler=@mysql_connect($db_server,$db_username,$db_password);

@mysql_select_db($db_database,$handler);

$ti = time();

$ip = getenv(REMOTE_ADDR);

$file = $PHP_SELF;

$result=@mysql_query("INSERT INTO $db_table VALUES ('$ti','$ip','$file')",$handler);

@mysql_close();

?>

В общем, запускаю php файл из броузера.

Значит, $ip должно получить мой ip адрес посредством getenv(REMOTE_ADDR);

$result должен, по идее, прописать этот ip в MySql.

Открываю phpMyadmin - и там в таблице useronline 0 rows, т.е. таблица пуста.

В чем пролема, как заполнить таблицу айпишками юзеров?

Почему 0 rows?

jenix
На сайте с 18.11.2004
Offline
58
#1

проверь выполняется ли запрос в скрипте. Возможно какое-то из значений, которое ты пытаешься добавить в базу содержит пустое значение, а в базе прописано что пусто быть не может. А вообще по-моему getenv не всегда работает. Проверьте и это. Надо смотреть настройки в php.ini

P.S. А как это относится к поисковой оптимизации? 🙅

C
На сайте с 02.09.2005
Offline
49
#2

mysql_error ничего не даёт, надо понимать?

jenix
На сайте с 18.11.2004
Offline
58
#3

у тебя программа вообще к базе подключается? :) Надо проверять все коннекты и транзакции 🚬

T
На сайте с 23.11.2005
Offline
298
#4

А как проверить, подключается ли программа на php к базе MySql?

И что написать в php.ini, который, если я правильно понимаю, нужно поместить в корневой директорий?

C
На сайте с 02.09.2005
Offline
49
#5
Thanx:
А как проверить, подключается ли программа на php к базе MySql?

Распечатывать mysql_error после каждой mysql_ функции и смотреть, если были ошибки, в том числе коннекта.

M
На сайте с 10.05.2005
Offline
58
#6

Для начала:

База к которой подключаетесь - существует?

Таблица создана?

Вместо @mysql_

Напишите mysql_

Тогда будет видно ошибки, если они есть.

M
На сайте с 10.05.2005
Offline
58
#7

Да и я бы сказал, что INSERT написан с ошибкой.

Имхо:

INSERT into TABLE(col1,col2,col3) values ('$col1','$col2','$col3')

Вернее не с ошибкой, а надо смотреть уже на структуру талицы.

По поводу IP, лучше брать так:

if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP");

else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");
Так берется и через неанонимный прокси.
T
На сайте с 23.11.2005
Offline
298
#8

Да.... из Excel к Sql серверу подключаюсь спокойно, а вот тут что-то не то делаю. А может мне кто-нибудь дать код в пару строчек на php, чтобы проверить, подключается ли программа к MySql и результаттом чтобы было наполнение пары строчек таблицы цифрами.

I
На сайте с 25.01.2005
Offline
37
#9
Thanx:
Да.... из Excel к Sql серверу подключаюсь спокойно, а вот тут чо-то не то делаю. А может мне кто-нибудь дать код в паур строчек на php, чтобы проверить, подключается ли программа к MySql и результаттом чтобы было наполнение пары строчек цифрами.

попробуй так

	$link = mysql_connect($host, $user, $pass)

or die ("<b>Ошибка!</b> Соединение с MySQL не установлено!<br>\n" . mysql_error() . "<br>\n");
mysql_select_db ($DBName, $link)
or die ("<b>Ошибка!</b> Соединение с базой данных не установлено!<br>\n" . mysql_error() . "<br>\n");
Таггу x_x
На сайте с 31.10.2005
Offline
445
#10

Все может быть проще. Структура таблицы какая? Индексного поля нет, типа row_id, или id? Если такие поля есть, то они доджны быть с автоинкриментом, так что в первое поле надо писать NULL, так как Вы не указываете конкретных полей для записи. В таком случае надо и записывать во все поля.


$sql="INSERT INTO table VALUES (NULL, '$ip', '$blabla', '$kuku')";
$result = mysql_query($sql) or die(mysql_error());

☠️☠️☠️
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий