| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Подскажите с mysqli_result |
| Автор: maxipub 18.8.2017, 16:07 | ||||||||
| Добрый день! Появилась необходимость перенести работающий проект на другой сервер. В связи с этим решил перестать быть динозавром, и обновиться PHP 5.3 -> 7.1 вроде все что надо проделал, и тут заметил один косяк. До этого использовал mysql_*, как известно, в PHP7 его нет, остановился на mysqli_*. В движке все запросы к БД идут через простую обертку, так что думал работы будет минимум. Все выглядит примерно так:
Соответственно, обертка mysql.php (упрощенно):
В варианте mysqli.php выглядит примерно так:
Я не сразу обратил внимание что функции mysqli_result почему-то не существует, и хоть новый result возвращает то что надо, логика у него совсем другая. Проблема возникает в таких участках кода:
Т.е. где, например, в условии сначала проверяется result, а потом уже в случае выполнения условия непосредственно используется это значение. При использовании mysql_result такой проблемы не было - его можно дергать сколько угодно раз. Но очевидно что в данном случае mysqli_fetch_row, начиная со второго вызова, будет возвращать NULL... Пытался решить это своими силами, пока ничего не выходит. Понимаю, что по-хорошему, может быть, лучше переделать код проекта, а не эту функцию. Но на данном этапе мне элементарно хотелось бы скорее закончить с переездом, а марафет наводить уже после. Поэтому хотелось бы поменять именно function result, а не рыться сейчас во всем коде. Какие будут предложения? Заранее огромное человеческое спасибо! |
| Автор: ksnk 21.8.2017, 15:37 | ||
почему бы не написать вот так? И резалт только один раз дергается и последствий, вроде, никаких...
|
| Автор: maxipub 23.8.2017, 12:57 |
| ksnk, за два часа вроде справился. Через день еще раз перепроверю чтоб не было косяков. Спасибо! |
| Автор: svenson 13.6.2019, 23:02 |
| Ох базы данных, тонкое это место, как правило всегда с ними проблеммы какие-то возникают. |