如何在PHP中使用MySQL用户定义的函数?

时间:2011-01-25 16:12:00

标签: php mysql user-defined-functions

花了几个小时寻找答案但没有成功。我在MySQL中编写了一个用户定义的函数,它传递一个标识符,用于检索各种数据,将其连接成一个字符串并返回它。我想从我的PHP页面调用此函数并输出结果。

不成功的尝试包括:

1. $result = mysql_query("select functionName($id)"); 

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

3. functionName($id) 

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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字符串中(可以是攻击的矢量)。但是,我假设此代码仅用于示例目的。

答案 1 :(得分:0)

我有同样的问题,发现这是非常有用的devx编写,特别是关于调用MySQL函数的底部部分:

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

关于mysqli,我的代码现在如下:

:

完美无缺。