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

标签 php postgresql function variables

我有一个函数应该根据他的 ID 号给我一个工作人员的名字,所以我的 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>

最佳答案

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

function staff_load($id) {

然后需要绑定(bind)prepared statement的参数。

$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;
}

关于php - 在 php 函数返回值中使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41802792/

相关文章:

php - 什么更快 - 多个 PDO 查询或数组查询

sql - 在多行上进行 Postgres 文本搜索

php - 解释型语言(即 PHP)中的面向对象编程是否高效?

node.js - 使用 Node.js 连接到 Heroku 上的 postgres

postgresql - 为什么不应用优化/使用不同的索引?

vb.net - 如何捕获函数返回KeyValuePair(Of Date,Date)中的错误

python - 为什么函数对象在 python 中评估为 True?

c - 一个函数的返回值工作正常,第二个函数的返回值不反射(reflect)正确的值

php - 如果mysql中存在,如何更新一行,或者如果不存在,如何创建一个新行

php - 将数据从两个数据库传输到一张表