@m4f1

Где ошибка в функции запроса в бд?

Не получается поместить в переменную $n вывод с запроса

UPD: строка содержит адрес, который нужно сравнить с другим адресом, и, если совпадает - пропустить, добавив +1 к просмотру; если не совпадает, то занести в БД.

Через
echo $rqul;
выдает
http://адрес/334343434/

Если вызвать
echo $n;
то выдаст ошибку
Catchable fatal error: Object of class waDbResultSelect could not be converted to string in


if ($e->getCode() === 404) {

                 $model = new waModel();

                 $n = $model -> query("SELECT * FROM `w3m_404urls` WHERE `url`= '$rqul'");
                 //var_dump(array($n));
                 //print_r(array($n));

                 if ($n == $rqul) {
                     $model -> query("UPDATE `w3m_404urls` SET `views`=`views`+1 WHERE `url` = '$rqul'");
                 } else {
                     $model -> query("INSERT INTO `w3m_404urls`(`id`, `url`, `date`) VALUES ( 'NULL','$rqul','$rquldate')");

                 }

                 return $this;
             }
  • Вопрос задан
  • 112 просмотров
Решения вопроса 1
Catchable fatal error: Object of class waDbResultSelect could not be converted to string in

вы хотя бы пробовали перевести данную строку??
объект класса waDbResultSelect не может быть преобразован в строку

ни о чем не говорит??

Ну вы посмотрите внимательно, что вы делаете-то??
$n = $model -> query("SELECT * FROM `w3m_404urls` WHERE `url`= '$rqul'")


у вас в $n находится waDbResultSelect, т.е. резалтсет (целая строка(и) таблицы)
к тому же и в запросе у вас * (т.е. в результате как минимум не одно поле)

может быть вы все-таки из резалтсета возьмете одно поле url и будете его сравнивать с $rqul , а не весь резалтсет?

см. waModel и waDbResultSelect

Ну, и, не вижу никакого смысла сравнивать кислое с пресным, в смысле одно и тоже.
вы выбираете по url и потом выбранное опять с ним же сравниваете ??
надо считать кол-во выбранного - если > 0 , то запись есть. соответственно далее ...

$n = $model -> query("SELECT * FROM `w3m_404urls` WHERE `url`= '$rqul'")->count();
if ($n > 0 ) {
// UPDATE
} else {
// INSERT
}


PS: ну и почему бы не упомянуть что вы используете Webasyst , здесь экстрасенсы??
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
IgorPI
@IgorPI
Вот здесь вы намудрили

Не правильно
"SELECT * FROM `w3m_404urls` WHERE `url`= '.$rqul.'"


Относительно правильно.
"SELECT * FROM `w3m_404urls` WHERE `url`= '$rqul'"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SaveTime Москва
от 160 000 руб.
SaveTime Москва
от 100 000 руб.
Tilda Publishing Москва
от 140 000 до 180 000 руб.
15 нояб. 2019, в 01:36
10000 руб./за проект
15 нояб. 2019, в 01:32
5000 руб./за проект