верните истину, не возвращая, или моя оценка остального не работает? - PullRequest
4 голосов
/ 29 февраля 2012

По какой-то причине мой оператор else не срабатывает, и я думаю, что мой метод по какой-то причине не возвращает true.

основной код

function msg($content)
{
   //function that echos out page with content in it
}

$car=new yamiko_car;
if(!$car->add())//returns bool false on fail and true on success
{msg($car->error);}
else{msg('Car has been added');}

и метод not возвращает false при ошибке, когда я проверяю данные, а просто оставляю комментарий. уже все это проверил и все работало нормально.

public function add()
{
    //gets data succesfully

    //MySQL
    $this->query("INSERT INTO car (year, make, model, price, obo, img1, img2, img3, img4, description)
    VALUES ('$year', '$make', '$model', '$price', '$obo', '$img1', '$img2', '$img3', '$img4', 'txt') ");

    echo 'mysql added';
    return true;
}

function query($sql, $result=false)
{
    $query=mysql_query($sql);
    if(!$query){$this->mysqlError.=mysql_error().'<br />';return false;}
    if($result==false){return true;}
    else{return $query;}
}

Я добавил оператор echo, и он срабатывает нормально ...
в случае ошибки возвращается false и запускается msg()
Я переключил оператор на if($car->add()){msg('car added')}else{msg($car->error);}, ни операторы if, ни else не сработают.
кроме того, любой код после оператора if не срабатывает и нет ошибок php или mysql.

Ответы [ 2 ]

1 голос
/ 29 февраля 2012

Похоже, что PHP молча падает, и интерпретация просто останавливается.Попробуйте установить Уровень ошибки PHP примерно так (в начале сценария PHP):

error_reporting(E_ALL);
0 голосов
/ 29 февраля 2012

Я думаю, вы пропустили скобку:

$car=new yamiko_car;

должно быть

$car=new yamiko_car();
...