[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сокращения кода.
Страницы: 1, 2
Diamorph
Использовать ли такие варианты написания?

mysqli_fetch_array(mysqli_query($db, "запрос");


mysqli_query($db, "запрос + условие в нем(тернарный оператор)");


Может стоит расписывать? Подскажите, или ссылочку дайте где можно почитать.

И использовать ли сам тернарный оператор, когда есть возможность его не использовать?
xlebosol
Это вопрос личных предпочтений, относящихся к стилю написания кода. Если пишите сами то пишите, что бы это могли понять другие, а если дописываете другой код, то используйте стиль который уже существует для лучшего читаемости кода.
Diamorph
Видел данные варианты в чужом коде!
Если
mysqli_fetch_array(mysqli_query($db, "запрос");
, мне ещё понятен, то остальные же варианты меня путают просто. Особенно
mysqli_query($db, "запрос + условие в нем(тернарный оператор)");
Игорь_Vasinsky
Цитата
mysqli_fetch_array(mysqli_query($db, "запрос");

запрос вернул false и всё посыпалось


$sql = "SELECT * FROM .....";

define("DEBUG", true);
...
...


$query = mysqli_query($link, $sql);

if(DEBUG)
echo mysqli_error($link);
else{
//логирование ошибки
//Вывод извинений для пользователя

}


if(mysqli_num_rows($query)){
while($row = mysqli_fetch_assoc($query)){
//.....
}
}


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
Игорь_Vasinsky, при $query = false, mysqli_num_rows() выдаст критическую ошибку


_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
ну при продакшене error_reporting(0), при отладке E_ALL

при $query === false в mysqli_num_rows ошибка будет скрыта, но продолжение работы с БД будет приостановлено

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
с дебагом я тоже логики не понял wink.gif

_____________
Стимулятор ~yoomoney - 41001303250491
kaww
Игорь_Vasinsky
если делать, например, так, то ошибок не будет:

try {

if (!($query = mysqli_query($link, $sql))) {

throw new Exception(mysqli_error($link));
}
if(mysqli_num_rows($query)){

while($row = mysqli_fetch_assoc($query)){
//.....
}
}

}
catch (Exception$e) {

if(DEBUG)
echo $e->getCode() . ': ' . $e->getMessage();
else{
//логирование ошибки
//Вывод извинений для пользователя

}
}
Valick
Цитата
запрос + условие в нем(тернарный оператор)

Diamorph, не могли бы вы показать реальный запрос к БД с тренарным оперетором. А то может я плохо учил синтаксис SQL.
___
подозреваю, что тренерный оперетор может там появиться на этапе формирования запроса, но не в самом запросе.


_____________
Стимулятор ~yoomoney - 41001303250491
Valick
kaww, вы тоже можете мне объяснить вто это?
    if(DEBUG)
echo $e->getCode() . ': ' . $e->getMessage();
else{
//логирование ошибки
//Вывод извинений для пользователя

}



_____________
Стимулятор ~yoomoney - 41001303250491
Игорь_Vasinsky
Valick

ну для последовательной обработки, заменим пожалуй так

if(DEBUG)
die(mysqli_error($link));


Цитата
с дебагом я тоже логики не понял

а чё там не понятного? управляем константой

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
kaww
Valick, если DEBUG === true, то выводим все ошибки на экран, иначе пишем в лог и ничего не показываем пользователю
Игорь_Vasinsky
kaww
он любит к мне придираться)))

я книги не читал, а он заядлый букинист.


так я ж тебе предлагаю - конкурс, а в топиках не просто со мной спорить нужно - а предлагать своё решение.

для людей стараемся, а не письками меряемся.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Valick
Цитата
а чё там не понятного? управляем константой

да уже дошло, либо ошибки в браузер либо в логи
просто безапелляционная константа направила мою логику в иное русло.
define("DEBUG", true);
// define("DEBUG", false);

было бы нагляднее

_____________
Стимулятор ~yoomoney - 41001303250491
Valick
Цитата
он любит к мне придираться)))

так в чем проблема, просто не давайте мне повод wink.gif


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.