@phpclubru

Страница 723 из 956
Юрий
19.12.2018
11:23:43
Привет, ребята! Спасибо большое что помагаете! и что растолковали все.. но у меня есть вопрос по uuid. uuid формирует свои 13 цифр на основе меток времени. Он же не кодирует строку, которая непосредственно передается в функцию? если кодирует именно внешнюю строку , что передается в функцию, то нет вопросов.. но если не кодирует - то есть.. вот пример есть предв сформир. $tmp_order_id 11223344 что план запис в БД. В текущий момент времени uuid сформирует для него строку $tmp_uuid = abcdefghtjy12 Но в след проход, если будет сформир такой же $tmp_order_id 11223344 - uuid сформирует ИНУЮ строку $tmp_uuid = abcdefghtjy99 ... Или я не прав? Значит нужно при вставке в БД проверять SELECT * FROM orders WHERE order_id = $tmp_order_id AND uuid=$tmp_uuid - Если вернется 0 строк - тогда вставлять! Если вернул строку - формируем новый $tmp_order_id b $tmp_uuid. Верно? ИЛИ НАПИШИТЕ SQL по которому вы ПРЕДЛАГАЕТЕ осуществлять проверку на уникальность order_id в БД. Огромное вам спасибо!

спасибо.. ну ссори.. я не прав? что-то не понимаю..

Nibbler
19.12.2018
11:26:31
бд как? учил

Юрий
19.12.2018
11:27:44
бд как? учил
учил. order_id UNIQUE поле

Google
Nibbler
19.12.2018
11:29:10
можешь сделать вложенный запрос

можешь оьработать через exception

Антон
19.12.2018
11:29:34
бд как? учил
ну че ты сразу наехал, ну тупит чувак, ты же тоже тупишь)))

Юрий
19.12.2018
11:31:31
ребята я не такой мега профи как вы.. я здесь для того чтобы учится у более понимающих и опытных прогеров! а не вас нервничать. Просто поясните в чем мое недопонимание и как правильно делать ПРОВЕРКУ. Если я пойму как правильно дел прверку исчезнут и вопросы

у меня с БД реально плохие отношения)) КАк сделать влож запрос или exception можно чуток кода для примера..

Nibbler
19.12.2018
11:34:08
я тебе три подсказки дал

Антон
19.12.2018
11:35:59
в чем?
ну человек много раз извинился что вообще сюда написал, а ты сразу БД УЧИЛ? ))

Nibbler
19.12.2018
11:36:19
это просто уточнение

хотел бы нагрубить

сказал иди в гугл

Антон
19.12.2018
11:37:03
хотел бы нагрубить
ну ладно, можешь мне чуток нагрубить)

Юрий
19.12.2018
11:37:04
это просто уточнение
та все норм) я только за истину

Google
Антон
19.12.2018
11:38:46
та все норм) я только за истину
если у тебя есть такая запись и ты попробуешь ее еще раз бобавить что будет?

Юрий
19.12.2018
11:39:18
Ошибка!

я не понимаю как перехватить эту ошибку и в случае ошибки сформировать новый $tmp_order_id

Антон
19.12.2018
11:40:33
Ошибка!
мамкин сын предлагает ее ловить и обрабатывать

Юрий
19.12.2018
11:41:03
мамкин сын предлагает ее ловить и обрабатывать
Та это я давно понял.. как ее перехватить?

Nibbler
19.12.2018
11:41:27
try {} catch {} finally {}

Антон
19.12.2018
11:41:37
не умею!!!
а у тебя нативная пыха или может фреймворк какой есть?

try {} catch {} finally {}
думашь всегда сработает? ))

Юрий
19.12.2018
11:42:26
Nibbler
19.12.2018
11:42:31
думашь всегда сработает? ))
ну не всегда но finally всегда

?

Юрий
19.12.2018
11:42:44
throw exeption ???

Nibbler
19.12.2018
11:42:56
ну посыл ты понял да

Антон
19.12.2018
11:43:18
throw exeption ???
http://php.net/manual/ru/language.exceptions.php

но тут нужно понять как ты запросы в базу отправляешь, возможно исключения не будет)

Google
Антон
19.12.2018
11:45:38
и когда не будет
иди в гугл )))

Nibbler
19.12.2018
11:45:54
ска %))))

Юрий
19.12.2018
11:47:28
SELECT * FROM orders WHERE order_id = $tmp_order_id AND uuid=$tmp_uuid Вот запрос для проверки!!

Nibbler
19.12.2018
11:47:42
долгий

SELECT count(id) FROM orders WHERE order_id = $tmp_order_id AND uuid=$tmp_uuid

хотя мой может быть не менее долгим ?

sergey
19.12.2018
11:56:53
Да уж.

Юрий
19.12.2018
11:59:17
SELECT count(id) FROM orders WHERE order_id = $tmp_order_id а такой может вернуть строки!

sergey
19.12.2018
11:59:43
всегда

вернет

одну строку

Антон
19.12.2018
11:59:51
аааа как тут весело )))

dypa
19.12.2018
12:00:30


sergey
19.12.2018
12:00:53
=) лучше откатиться на ночной вариант ) он был не таким безысходным

Юрий
19.12.2018
12:04:58
$q = 'SELECT count(id) FROM orders WHERE order_id = "'.$tmp_order_id.'" '; $order_inserted = false; while ($order_inserted === false) { try { $res = $this->db->rawQuery($q); if ($res) { throw new Exception("row exists"); } else { $order_inserted = true; } } catch (Exception $e) { } }

Вот так?

https://github.com/ThingEngineer/PHP-MySQLi-Database-Class обертка для работы с БД что использую

Pavel
19.12.2018
12:07:12
Слушайте а что такое фикстура в тестах?

dypa
19.12.2018
12:07:23
Вот так?
заполни таблицу на 50% и посмотри как изменится в худшую сторону время вставки

Google
dypa
19.12.2018
12:07:47
Слушайте а что такое фикстура в тестах?
данные, которые ты создаешь перед прохождением теста

Dmitry
19.12.2018
12:08:09
это для функциональщины, базу заполнить, да

Pavel
19.12.2018
12:08:25
данные, которые ты создаешь перед прохождением теста
А я вот тоже так думал 5 лет, а щас наткнулся на факт что это не оно

https://en.wikipedia.org/wiki/Test_fixture

Это что-то типа юнита в юнит-тесте :)

dypa
19.12.2018
12:10:35
A software test fixture sets up the system for the testing process by providing it with all the necessary code to initialize it

Pavel
19.12.2018
12:11:49
Ну вот, то есть это не данные, а атомарный запускатор теста с данными

Просто тут в C# есть фреймворк NUnit и у него как раз класс который содержит в себе тесты помечается аннотацией [TestFixture]

dypa
19.12.2018
12:12:45
первичная настройка системы + первичные данные - я понимаю это так

Pavel
19.12.2018
12:16:06
По идее тогда тело тестов должно быть вне фикстуры

dypa
19.12.2018
12:55:00
Nibbler
19.12.2018
12:56:00
иди в гугл :Р
? я просто ниразу еще на 50% не заполнял БД:)

гугл не помог ?

хотел переписать и случайно удалил

Антон
19.12.2018
12:58:07
? я просто ниразу еще на 50% не заполнял БД:)
могу научить)) делаешь df и пишешь в базу пока не будет 50%

Nibbler
19.12.2018
12:58:52
блэт обертку еще пользует

тогда изи

Google
Nibbler
19.12.2018
12:59:21
$id = $db->insert (‘order’, $data); if ($id) echo 'user was created. Id=' . $id; else echo 'insert failed: ' . $db->getLastError();

Pavel
19.12.2018
12:59:30
блэт обертку еще пользует
чел еще один раз мат и получишь RO

Nibbler
19.12.2018
12:59:37
прям в доке написано все.

чел еще один раз мат и получишь RO
слушай чувак. пока я не пришел тут штиль был

Nibbler
19.12.2018
13:00:03
как на кладбище. Женщин и детей не вижу

Pavel
19.12.2018
13:00:19
как на кладбище. Женщин и детей не вижу
Моего стейтмента это не меняет.

Nibbler
19.12.2018
13:00:35
а где эксепшен?
да не нужен, там же обертка делает как понимаю. под капот не полезу.

Антон
19.12.2018
13:01:04
Nibbler
19.12.2018
13:01:17
я просто сходит в доку которую он прислал

я думал у него нет обертки ?

Антон
19.12.2018
13:01:50
чел еще один раз мат и получишь RO
у них там за уралом не разделяют)

Страница 723 из 956