Intereting Posts

Как использовать пользовательскую функцию MySQL из PHP?

Провел несколько часов, чтобы найти ответ без успеха. Я написал пользовательскую функцию в MySQL, которая передала идентификатор, который он использует для извлечения различных фрагментов данных, объединил его в одну строку и вернул. Я хочу вызвать эту функцию с моей PHP-страницы и вывести результат.

Неудачные попытки включают:

1. $result = mysql_query("select functionName($id)"); 2. $sql = "select functionName($id)"; $result = mysql_query($sql, $link); 3. functionName($id) 

Есть идеи?

Related of "Как использовать пользовательскую функцию MySQL из PHP?"

1 и 2 близки, но $result не будет содержать результат вызова функции. Скорее, он будет содержать файл cookie результата из запроса. Вы можете использовать этот файл cookie для получения фактических данных с помощью mysql_fetch_row() . Вызов функции просто возвращает значение для оператора select, точно так же, как «SELECT 42» или «SELECT a FROM MyTable». Таким образом, чтобы получить результат, вы должны использовать тот же механизм, что и с любым другим SQL-запросом, который возвращает результаты; то есть использовать cookie и вызвать mysql_fetch_row() . Таким образом, ваш окончательный код будет выглядеть так:

 $result = mysql_query("select functionName($id)"); $row = mysql_fetch_row($result, $link); $returnValue = $row[0]; 

Обратите внимание: вы не хотите, чтобы интерполировать переменные напрямую в строку SQL (это может быть вектор для атак). Я предполагаю, однако, что этот код является просто целями.

У меня был такой же вопрос, и я нашел эту полезную запись из devx, особенно в нижней части о вызовах функций MySQL:

http://www.devx.com/webdev/Article/42887/0/page/2

Что касается mysqli, теперь мой код выглядит следующим образом:

 $result = mysqli_query($sqlconnection,"SELECT functionName($id)"); $row = mysqli_fetch_row($result); return $row[0]; 

работает отлично.