我有一个功能,应该从他的身份证号码给我一个工作人员的名字,所以我的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>
答案 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);