我尝试按IllegalArgumentException Key must be integer clojure.lang.APersistentVector.invoke (APersistentVector.java:292)
我在本地主机中获得的内容:acc_id
然而,当我设置一个特定的[]
我得到正确的行是否有我的语法?
acc_id
答案 0 :(得分:1)
您似乎想要使用预处理语句,而是立即执行查询。如果要将值绑定到查询,请使用以下内容:
$acc_id = // get the $acc_id value from somewhere you want
$stmt = $pdo->prepare('SELECT p_fname, p_lname, p_condition FROM patient_info WHERE acc_id = ?');
$stmt->execute([$acc_id]);
while($row = $stmt->fetch(PDO::FETCH_ASSOC))
{
// Assign each row of data to associative array
$data[] = $row;
}
您可以使用bindValue()
或bindParam()
方法,而不是使用参数数组执行语句:
$stmt = $pdo->prepare('SELECT p_fname, p_lname, p_condition FROM patient_info WHERE acc_id = :acc_id');
$stmt->bindValue(':acc_id', $acc_id);
$stmt->execute();
// everything else works as previous
这两种方法之间的区别在于文档:
将值绑定到用于准备语句的SQL语句中的相应命名或问号占位符。
将PHP变量绑定到用于准备语句的SQL语句中的相应命名或问号占位符。与PDOStatement :: bindValue()不同,变量被绑定为引用,并且仅在调用PDOStatement :: execute()时进行计算。