Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 14.10.2007, 17:48   #11
webinteger
Не дай себе засохнуть!
 
Аватар для webinteger
 
Регистрация: 13.10.2007
Сообщений: 199
Репутация: 16634
Отправить сообщение для webinteger с помощью ICQ

ТопикСтартер Ответ: PHP & mySQL написание и доработка скриптов (Консультации)

Цитата:
Сообщение от Зингельшухер Посмотреть сообщение
webinteger, можешь дать бесплатно консультацию по одному простому вопросу.

Есть ли ошибки в следующем коде.

PHP код:
<?php
if (is_resource($link mysql_connect('localhost''root'''))) {
    if (
is_resource($result mysql_unbuffered_query('SHOW VARIABLES;'))) {
        
header('Content-type: text/plain');
        while (
$array mysql_fetch_row($result)) {
            echo 
implode(chr(9), $array) . chr(10);
        }
    }
    
mysql_close($link);
}
?>
(вопрос на засыпку по этому ошибок может быть как несколько, так и не быть совсем)
Скрипт вывел системные переменные, каких-то явных ошибок не заметил.
__________________
> PHP & mySQL написание и доработка скриптов Page 1 Page 2

Последний раз редактировалось webinteger; 14.10.2007 в 18:04..
webinteger вне форума   Ответить с цитированием

Реклама
Старый 14.10.2007, 18:52   #12
Зингельшухер
Banned
 
Регистрация: 15.10.2005
Сообщений: 2,386
Репутация: 96621

По умолчанию Ответ: PHP & mySQL написание и доработка скриптов (Консультации)

Почти угадал, есть не ошибки а "странности"

- is_resource можно было просто убрать (данные места в любом случае возвращают либо ресурс либо false что для конструкций if вполне достаточно)
- Например функция chr вовсе тут не нужна, в данном случае проще было просто использовать "\t" и "\n" (chr надо использовать когда параметром служит переменная, иначе он просто заменяется типичными строками)

Это хоть и не ошибки, но я ожидал что это сразу бросится в глаза.
Зингельшухер вне форума   Ответить с цитированием
Старый 14.10.2007, 18:58   #13
dkameleon
Особый статус
 
Аватар для dkameleon
 
Регистрация: 10.12.2005
Сообщений: 6,507
Репутация: 1047779
Отправить сообщение для dkameleon с помощью Skype™

По умолчанию Re: PHP & mySQL написание и доработка скриптов (Консультации)

Цитата:
Сообщение от Зингельшухер
Почти угадал, есть не ошибки а "странности"
так это уже претензии к индивидуальному стилю программирования
__________________
Дизайн интерьера
dkameleon вне форума   Ответить с цитированием
Старый 14.10.2007, 19:04   #14
Зингельшухер
Banned
 
Регистрация: 15.10.2005
Сообщений: 2,386
Репутация: 96621

По умолчанию Ответ: PHP & mySQL написание и доработка скриптов (Консультации)

Цитата:
Сообщение от dkameleon
так это уже претензии к индивидуальному стилю программирования
Это не стиль, это неразумное использование в первую очередь своего времени (ну и процессорных тактов, но на этом уровне скриптов это не важно)
Зингельшухер вне форума   Ответить с цитированием
Старый 14.10.2007, 20:21   #15
dkameleon
Особый статус
 
Аватар для dkameleon
 
Регистрация: 10.12.2005
Сообщений: 6,507
Репутация: 1047779
Отправить сообщение для dkameleon с помощью Skype™

По умолчанию Re: PHP & mySQL написание и доработка скриптов (Консультации)

Цитата:
Сообщение от Зингельшухер
Это не стиль, это неразумное использование в первую очередь своего времени (ну и процессорных тактов, но на этом уровне скриптов это не важно)
в таком случае без разницы как использовать:

if (isset($_GET["id"])) {}
или
if (@$_GET["id"]) {}

но в то же время есть понятие правильного подхода и неправильного.


В данном задании имеем функцию: mysql_connect
Её возможные результаты: Returns a MySQL link identifier on success, or FALSE on failure.
Далее, в случае успешного подключения, необходмо выполнить запрос.
Проверка успешности подключения в данном случае наиболее грамотно реализуется проверкой результата функции на соответствие требуемому типу: is_resource,
или на несоответствие булевому типу: !is_bool
А принудительное приведение типов - это от лукавого. Ввиду того, что ПХП позволяет свободную конвертацию, результаты могут быть иногда непредсказуемыми.
В качестве примера приведу аналогичную функцию, возвращающую разнотипные результаты, но с небольшим отличием - вместо ресурса возвращается целое число:
PHP код:
    if ($pos strpos("abcdef""abc")) {
        echo(
"found");
    } else {
        echo(
"not found");
    } 
Так что у вас прослеживается явное неразумное НЕиспользование того, что должно быть использовано.
dkameleon вне форума   Ответить с цитированием
Старый 14.10.2007, 20:21   #16
dkameleon
Особый статус
 
Аватар для dkameleon
 
Регистрация: 10.12.2005
Сообщений: 6,507
Репутация: 1047779
Отправить сообщение для dkameleon с помощью Skype™

По умолчанию Re: PHP & mySQL написание и доработка скриптов (Консультации)

дубль............
dkameleon вне форума   Ответить с цитированием
Старый 14.10.2007, 20:31   #17
Зингельшухер
Banned
 
Регистрация: 15.10.2005
Сообщений: 2,386
Репутация: 96621

По умолчанию Ответ: PHP & mySQL написание и доработка скриптов (Консультации)

Цитата:
Сообщение от dkameleon
в таком случае без разницы
В этом случае разница есть, тут явная проверка против подавления ошибки (что само по себе грубейшая ошибка)
Зингельшухер вне форума   Ответить с цитированием
Старый 14.10.2007, 20:33   #18
Зингельшухер
Banned
 
Регистрация: 15.10.2005
Сообщений: 2,386
Репутация: 96621

По умолчанию Ответ: PHP & mySQL написание и доработка скриптов (Консультации)

Цитата:
Сообщение от dkameleon
В качестве примера приведу аналогичную функцию
Это аналогичная но не эквивалентная, тут чуть чуть другая ситуация. (хотя очень похожая)
Зингельшухер вне форума   Ответить с цитированием
Старый 14.10.2007, 20:39   #19
dkameleon
Особый статус
 
Аватар для dkameleon
 
Регистрация: 10.12.2005
Сообщений: 6,507
Репутация: 1047779
Отправить сообщение для dkameleon с помощью Skype™

По умолчанию Re: PHP & mySQL написание и доработка скриптов (Консультации)

Цитата:
Сообщение от Зингельшухер
тут чуть чуть другая ситуация
ситуация отличается единственным:
ноль интерпретируется как false
только код в вашей версии рискует потерять работоспособность, если результат функции mysql_connect будет расширен. скажем, потребуется возвращать код ошибки.

ПС. Самое сложное признать свою неправоту )


Цитата:
Сообщение от Зингельшухер
тут явная проверка против подавления ошибки (что само по себе грубейшая ошибка)
у многих хостеров и, есди не ошибаюсь, в конфиге по умолчанию нотисы вообще отключены и начинающие девелоперы могут не знають об их существовании. В таком случае можно обойтись и без лигатуры. но суть примера не изменится - принудительное приведение типов там, где его делать не следует.
dkameleon вне форума   Ответить с цитированием
Старый 14.10.2007, 20:53   #20
integer
Студент
 
Аватар для integer
 
Регистрация: 01.02.2007
Сообщений: 42
Репутация: -892

По умолчанию Re: PHP & mySQL написание и доработка скриптов (Консультации)

integer вне форума   Ответить с цитированием
Ответ



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны