如何使用PHP中的过程获取数据?

时间:2014-03-24 06:20:50

标签: php mysql stored-procedures

我第一次使用过程。如何使用procedure获取数据。我在sql文件中创建了这个过程。

CREATE  PROCEDURE `GetUserProfile`(IN p_user_id INT, IN p_enabled BIT)
READS SQL DATA
BEGIN
# prepare init params
if p_user_id = 0 then
set p_user_id = null;
end if;

select  parent_user_id
      ,user_id
      ,Last_name
      ,First_name
      ,email as Email_address
      ,mobile as Phone
from    app_users
where   app_user_id = IFNULL(p_user_id, user_id)

和enabled = IFNULL(p_enabled,enabled);

那么如何通过PHP获取用户详细信息,如First_name,Last_name等。 感谢

2 个答案:

答案 0 :(得分:0)

您是否可以使用 sqlsrv_connect 功能连接到SQL Server数据库,使用 sqlsrv_prepare 函数调用 tsql函数 $ params args,最后使用 sqlsrv_fetch _ * 函数之一来检索数据。

请参阅此页面上的说明: http://technet.microsoft.com/en-us/library/cc793139(v=sql.90).aspx

答案 1 :(得分:0)

您可以使用PDO执行mysql存储过程并访问结果。

参见示例on this page from the PHP Documentation。特别是例子#4

<?php
$stmt = $dbh->prepare("CALL sp_returns_string(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000); 

// call the stored procedure
$stmt->execute();

print "procedure returned $return_value\n";
?>

和示例#5

<?php
$stmt = $dbh->prepare("CALL sp_takes_string_returns_string(?)");
$value = 'hello';
$stmt->bindParam(1, $value, PDO::PARAM_STR|PDO::PARAM_INPUT_OUTPUT, 4000); 

// call the stored procedure
$stmt->execute();

print "procedure returned $value\n";
?>

如果您在我建议浏览文档之前没有使用PDO,creating a new PDO object操纵数据库就像这样简单:

$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);