在php函数中使用变量返回值

时间:2017-01-23 09:22:17

标签: php postgresql function variables

我有一个功能,应该从他的身份证号码给我一个工作人员的名字,所以我的PHP是这样的

$staffId = $_GET['staff_id'];
$staff = staff_load($staffId);

我的功能就像这样

function staff_load()
{
$dbh = dbh_get(); //connects to database

$sql = 'select user_name from user_staff where user_id = ?';
$stmt = $dbh->prepare($sql);
$stmt->execute();
$staff = $stmt->fetch();

dbh_free($dbh); //disconnects from database
return $staff;
}

但是当我尝试使用$ staff变量时,它什么都没显示。我无法弄清楚我做错了什么。我已经尝试过一堆变种,除了沮丧之外无处可去。

<td>Book for ' . $staff . '</td>

2 个答案:

答案 0 :(得分:3)

首先,您忘记在函数定义中包含参数:

function staff_load($id) {

然后你需要绑定预准备语句的参数。

$sql = 'select user_name from user_staff where user_id = $1';
$stmt = $dbh->prepare($sql);
$stmt->execute(array($id));

接下来,fetch()返回一个数组,您需要从数组中提取user_name元素:

$row = $stmt->fetch();
if ($row) {
    $staff = $row['user_name'];
} else {
    $staff = false;
}

答案 1 :(得分:0)

首先你必须将参数传递给staff_load函数

function staff_load($staffId)

其次你应该绑定参数

$sql = 'select user_name from user_staff where user_id = :user_id';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':user_id', $staffId);