php MySql ПРОБЛЕМ

3 отговора 136 прегледа
#1

php MySql ПРОБЛЕМ

Тази заявка ми работи:
mysql_query("INSERT INTO tbl_kr_he13 (col_nom, col_kod, col_ip) values ($txt_nom, $c, $c) ");

но как да вкарам в следващите 40 колони, стойностите на елементите на масива а? С долния ред се появяват успешно на екрана:

for($i=0;$i<count($a);$i++){ echo "a $i=",$a[$i], '
'; }


И още като какъв тип дании в MySQL се съхранява ip адреса (ot $HTTP_SERVER_VARS["REMOTE_ADDR"])??

Отговор
в отговор на Lin #2

Re: php MySql ПРОБЛЕМ

for($i=0;$i<count($a);$i++){
mysql_query("INSERT INTO tbl_kr_he13 (col_nom, col_kod, col_ip) values ($i, ".$a[$i].", $c) ");
}

$HTTP_SERVER_VARS["REMOTE_ADDR"] -> polzvai varchar (15) s default 0.0.0.

Отговор
в отговор на ro6avia #3

Re: php MySql ПРОБЛЕМ

Благодаря!

А се оказа, че съм пропуснала кавичките при въвеждането на ip адреса и затова не ставало.

Отговор
в отговор на Lin #4

Re: php MySql ПРОБЛЕМ

Силно ти препоръчвам да съхраняваш IP адресите като

IP INT UNSIGNED

причината е в пространството - INT заема 4 байта - точно колкото всъщност е вътрешното представяне на IPv4 32 бита или 4 байта

Сравни го с 15-те байта необходими за да се съхрани
255.255.255.255

Това прави разлика от 11 байта на колонка по брой на редовете.

Дори само 1 адрес да пазиш на ред - при 1 000 000 реда разликата става 10 Мб.

Отделно от това всички операции с INT са по-бързи а и индексите са по-компактни.

За целта са прочети за функциите INET_NTOA() INET_ATON()'

INSERT INTO ... VALUES(INET_ATON('10.10.0.0'));
SELECT INET_NTOA(ip) ....

salle.online.bg/sig
Отговор