我一直在尝试简化我的PHP代码,并且很难弄清楚为什么我的php函数不能按设计工作:
在这种情况下,我正在尝试卡拉OK目录的艺术家数据库:$ db =一个PDO连接,$ ta是一个艺术家表。
功能:
function getRow($q, $pr = []){
$stmt = $db->prepare($q);
$stmt->execute($pr);
return $stmt->fetch(PDO::FETCH_OBJ);
}
呼叫:
$st = getRow("SELECT * FROM $ta WHERE id=?" , ["313"]);
当我运行此代码时,我收到一条错误消息,指出在非对象上存在非法调用prepare函数。
有趣的是,当我重新格式化我的代码时,它有效,但我不明白为什么它不能如上所述。
工作代码:
function getRow($q, $pr = []){
$stmt = ($q);
$stmt->execute($pr);
return $stmt->fetch(PDO::FETCH_OBJ);
}
工作电话:
$st = getRow($db->prepare("SELECT * FROM $ta WHERE id=?"), ["313"]);
echo $st->prefix.' '.$st->fname.' '.$st->artist.'<br>';
使用本地服务器:Ampps和PHP 5.5
哦,艺术家的记录313恰好是:比利乔尔。 :) 任何想法都将不胜感激。