Я пытаюсь использовать функцию php с Flash Builder ... Однако возвращаемое значение функции неожиданное ... пустой [] (объект) вместо массива.
Функция:
public function getAllAuctions($search) {
$stmt = mysqli_prepare($this->connection, "SELECT * FROM $this->tablename WHERE name LIKE ?");
$this->throwExceptionOnError();
mysqli_stmt_bind_param($stmt, 'i', $search);
$this->throwExceptionOnError();
mysqli_stmt_execute($stmt);
$this->throwExceptionOnError();
$rows = array();
mysqli_stmt_bind_result($stmt, $row->id, $row->name);
while (mysqli_stmt_fetch($stmt)) {
$rows[] = $row;
$row = new stdClass();
mysqli_stmt_bind_result($stmt, $row->id, $row->name);
}
mysqli_stmt_free_result($stmt);
mysqli_close($this->connection);
return $rows;
}
Подводя итог ... Я ожидаю получить массив, результат поискового запроса mysql; вместо этого получает пустой объект: []
Любые идеи?
Должен признаться, что я полный новичок в php. Функция предоставляется как шаблон при подключении к службе данных; просто заменил имя переменной $search и небольшую модификацию mysql (LIKE). Он был предназначен для работы с select * ... Я подозреваю, что ошибки передаются через Zend Framework, который устанавливается во время процесса ...
Я думал о покупке Flash Builder, но сейчас не уверен ... пытаюсь обойтись без eclipse ... очень плохо ... Мне нужно начинать все сначала ... изучить Java ... ошибка кажется достаточно подозрительной ... . биты переводятся в 5b 5d ...
Я думаю, проблема в mysqli_stmt_bind_param($stmt, 'i', $search); ... он должен быть "s" из строки, а не "i" из целого числа ... еще не пробовал ...
Да .... вот в чем проблема ... Мне потребовалось около месяца, чтобы понять .... "s" вместо "i" .... Я знал, что у меня это работало раньше .... наконец-то ....






Проблема в разделе параметров привязки: mysqli_stmt_bind_param($stmt, 'i', $search); ....
должно было быть: mysqli_stmt_bind_param($stmt, 's', $search);
Любопытно, как вы обнаруживаете ошибку с
$this->throwExceptionOnError();. Не уверен, в чем смысл$rows[] = $row;, потому что$rowне установлен заранее, поэтому логически вы всегда пропустите последний результат. В-третьих, я думаю, что при использованииmysqli_stmt_bind_resultвы должны изменить свой запрос, чтобы выбрать имена столбцов, вы не должны вызывать*. (Я могу ошибаться в этом вопросе, пожалуйста, поправьте меня). В-четвертых, похоже, что с этим кодом слишком много проблем. Я чувствую, что чтение чтение страницы руководства может быть лучшим способом сузить круг вопросов.