tom
|
|
« Ответ #32 : 12 Апреля 2018, 18:05:28 » |
|
Ну по перше, на мою думку ця процедура вже не дуже коректна, якщо використовуються ключі foreach my $f( keys %dropdown_values ) { foreach my $value( keys %{$dropdown_values{$f}} ) { $value or next; $test && next; Db->do("INSERT INTO dictionary SET type=?, k=?, v=? ON DUPLICATE KEY UPDATE v=?", $dropdown_fields{$f}, $value, $value, $value); } } та my $sql = 'uid=?'; my @sql_param = ($uid); foreach my $f( keys %c ) { $f =~ /^_/ or next; $sql .= ", $f=?"; push @sql_param, $d[$c{$f}]; } my $rows = Db->do("INSERT INTO data0 SET $sql ON DUPLICATE KEY UPDATE $sql", @sql_param, @sql_param);
Воно тупо записує імя вулиці і не враховуютсья використання ключів. Тобто, якщо використовується параметр city, то він вже має бути ключем до street.
Але не зважаючи на це все, в особистій картоці клієнта, не підтягуються з таблиці data0 данні mysql> select _adr_street,_adr_city from data0 where uid=84; +--------------------------------------------------------+--------------------+ | _adr_street | _adr_city | +--------------------------------------------------------+--------------------+ | 60 | | | 117 | | | 117 | | | 117 | | | 117 | | | Соборності (Леніна) | Миронівка | | Соборності (Леніна) | Миронівка | | Соборності (Леніна) | Миронівка | | Соборності (Леніна) | Миронівка | | Миронівка:Соборності (Леніна) | Миронівка | +--------------------------------------------------------+--------------------+
Як правильно передати данні, що б воно зафіксувало і підтягнуло данні. Також, як правильно додати і точку топології?
SELECT id FROM users WHERE name='117' Строк: 1. Время выполнения sql: 0.00007100 сек
UPDATE users SET fio = 'Соломяний Артем Віталійович', contract = '117', name='117', balance='284.92' WHERE name='117' Строк: 1. Ð’Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ sql: 0.0004 Ñек
INSERT INTO data0 SET uid='84', _adr_telefon='42 4 68, 8 067 456 16 18', _adr_sn='', _adr_city='Миронівка', _adr_street='Миронівка:Соборності (Леніна)', _adr_house='21', _adr_room='66' ON DUPLICATE KEY UPDATE uid='84', _adr_telefon='42 4 68, 8 067 456 16 18', _adr_sn='', _adr_city='Миронівка', _adr_street='Миронівка:Соборності (Леніна)', _adr_house='21', _adr_room='66' Строк: 1. Ð’Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ sql: 0.0015 Ñек
INSERT INTO users_trf SET uid='84' ON DUPLICATE KEY UPDATE uid=uid Строк: 1. Время выполнения sql: 0.00006900 сек
DELETE FROM pays WHERE mid='84' AND cash<>0 Строк: 1. Время выполнения sql: 0.0010 сек
DELETE FROM users_services WHERE uid='84' Строк: 1. Время выполнения sql: 0.0007 сек
SELECT * FROM users WHERE name='117' Строк: 1. Время выполнения sql: 0.0001 сек
INSERT INTO pays SET time=UNIX_TIMESTAMP()-1, creator='other', category=5, mid='84', cash='284.92', comment='Перенос баланса со старого биллинга' Строк: 1. Время выполнения sql: 0.0004 сек
Подключение услуги
SELECT * FROM services WHERE service_id='10' LIMIT 1 Строк: 1. Время выполнения sql: 0.00008700 сек
SELECT 1 FROM v_services WHERE uid='84' AND service_id='10' AND id<>'0' LIMIT 1 Строк: 0. Время выполнения sql: 0.0001 сек
SELECT * FROM users u JOIN data0 d ON u.id=d.uid WHERE u.id='84' LIMIT 1 Строк: 1. Время выполнения sql: 0.0002 сек
SELECT (in1+in2+in3+in4+out1+out2+out3+out4) AS traf FROM users_trf WHERE uid='84' Строк: 1. Время выполнения sql: 0.00007300 сек
start transaction
SELECT UNIX_TIMESTAMP(LAST_DAY(FROM_UNIXTIME('1523487520') - INTERVAL 1 MONTH) + INTERVAL 1 DAY) AS tm1, UNIX_TIMESTAMP(LAST_DAY(FROM_UNIXTIME('1523487520')) + INTERVAL 1 DAY) AS tm2, UNIX_TIMESTAMP(LAST_DAY(FROM_UNIXTIME('1523487520')) + INTERVAL '1' DAY) AS tm_end Строк: 1. Время выполнения sql: 0.00006700 сек
INSERT INTO pays SET time=UNIX_TIMESTAMP(), mid='84', cash='0', category='100', reason='$VAR1 = {\'start_traf\' => 2659720108,\'tm_end\' => 1525122000,\'tm_start\' => 1523487520,\'cash\' => 0};', comment='[1020]HiNet95', creator_ip=INET_ATON('0.0.0.0'), creator='kernel', creator_id='1' Строк: 1. Время выполнения sql: 0.00008400 сек
UPDATE users SET balance=balance+('0') WHERE id='84' LIMIT 1 Строк: 1. Время выполнения sql: 0.0001 сек
INSERT INTO users_services SET uid='84', service_id='10', next_service_id='10', pay_id='7249991', tags=',inet,speed,start_traf=2659720108,',radius_attr='', tm_start='1523487520', tm_end=UNIX_TIMESTAMP(LAST_DAY(FROM_UNIXTIME('1523487520')) + INTERVAL '1' DAY) Строк: 1. Время выполнения sql: 0.00008600 сек
commit
INSERT INTO dictionary SET type='street', k='Миронівка:Соборності (Леніна)', v='Миронівка:Соборності (Леніна)' ON DUPLICATE KEY UPDATE v='Миронівка:Соборності (Леніна)' Строк: 1. Ð’Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ sql: 0.0001 Ñек
INSERT INTO dictionary SET type='city', k='Миронівка', v='Миронівка' ON DUPLICATE KEY UPDATE v='Миронівка' Строк: 1. Ð’Ñ€ÐµÐ¼Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ sql: 0.00006500 Ñек
Ну й така ремарка, якщо в данних переноса немає ір, навіщо скрипту створювати статику?
|