2011-01-25 116 views
3

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

不成功的尝试包括:

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

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

3. functionName($id) 

任何想法?

+0

你是指存储过程吗?如果是这样的话,您需要致电YourSP() – 2011-01-25 16:14:01

+0

您正处于(1)和(2)的正确轨道。你收到什么类型的错误信息?在MySQL查询工具中运行查询时查询是否正常工作? – 2011-01-25 16:14:43

回答

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字符串(可以是攻击向量)。然而,我认为这段代码仅仅是为了举例。

0

我有同样的问题,发现从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]; 

完美地工作。

相关问题