Задать вопрос
eprivalov
@eprivalov
Учусь

Проблема при переходе с MySQL на MySQLi

Всем привет. Попробую объяснить суть моей проблемы - есть php файл, который является классом, в котором куча методов (функций). И во многих методах, в конце, был такой код:
function getSitee($uid) {
		$q = "SELECT id FROM tx5_users WHERE sit1 = $uid or sit2 = $uid";
		$result = mysqli_query($this->connection, $q);
		return $this->mysql_result($result); //так было в оригинале
}


или, например, вот так:
function getFieldLevel($vid, $field) {
		$q = "SELECT f" . $field . " FROM tx5_fdata WHERE vref = $vid";
		$result = mysqli_query($this->connection, $q);
		return mysql_result($result, 0); //так было в оригинале
}


Но затем потребовалось перейти с MySQL на MySQLi и тут возникли проблемы:

1. В первой функции можно заменить mysql_result() на mysqli_fetch_all()

2. Во второй функции заменить mysql_result() на mysqli_fetch_all() уже не удается (((. Поэтому я написал функцию:

function mysqli_result($res, $row, $field=0) {
    	$res->data_seek($row);
    	$datarow = $res->fetch_array();
    	return $datarow[$field];
}


Но если я вставляю эту функцию в этот же класс, то вижу такую ошибку:


Fatal error: Call to undefined function mysqli_result() in /var/www/GameEngine/Database/db_MYSQLi.php on line 1540


Как победить ошибку?
  • Вопрос задан
  • 6433 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Sekira
@Sekira
Тоже с этим столкнулся, делаю так:
array_shift($mysqli->query("select count(*) from ...")->fetch_row())

Кто как считает, это хороший вариант прежнего использования mysql_result($result, 0) ?
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
nazarpc
@nazarpc
Open Source enthusiast
Может, вы вызываете метод как функцию, а нужно как метод?
$this->mysqli_result(...);
Ответ написан
Комментировать
@Nc_Soft
Работает? Не трогай!
Не работает? Переписывай!
Ответ написан
Комментировать
KEKSOV
@KEKSOV
Простите, но в Вашем оригинале нет вызова функции mysqli_result. Приведите полный фрагмент нового кода.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы