為什麼無法使用php中mysqli的準備語句進行資料庫中資料的查詢(綁定參數或者綁定結果),項目急用!
代碼如下:
/*
利用mysqli擴充來綁定結果
*/
//建立伺服器串連
$mysqli=new mysqli('localhost','root','root','searcdb');
//建立查詢
$query="SELECT adminName,adminPwd FROM admininfo";
//建立語句對象
$stmt=$mysqli->stmt_init();
//為執行準備語句
$stmt->prepare($query);
//執行語句
$stmt->execute();
//綁定結果參數
$stmt->bind_result($name,$pwd);
//迴圈處理結果並輸出資料
while($stmt->fetch()){
printf("%s, %s, %s
",$name,$pwd);
}
//恢複語句資源
$stmt->close();
//關閉串連
$mysqli->close();
?>
這個語句到底有什麼問題啊 我直接做增刪改查是可以,但是無論是採用mysqli綁定結果或者綁定參數的方法都不行,求大俠指導啊,公司實習很快就要用它做項目了,急用急用!!
------解決方案--------------------
printf("%s, %s, %s
",$name,$pwd); ???
少了一個參數
或者說多了一個格式符
------解決方案--------------------
多一個預留位置。你不是只有兩個參數嗎?
------解決方案--------------------
少了一行代碼,要把查詢結果臨時儲存才能使用。
僅供參考:
function selectLink($oid){
$sql = "select o.oid,l.lid,c.cid,comName,comPrice,ordTime
from mis_order o,mis_link l,mis_commodity c
where o.oid=l.lid and c.cid=l.cid and o.oid=?";
$stmt = $this->mysqli->prepare($sql);
$stmt->bind_param("i",$oid);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($oid,$lid,$cid,$comName,$comPrice,$ordTime);
$rows = $stmt->affected_rows;
if($rows > 0){
$arrLink = array();
while($stmt->fetch()){
$arr = array(
"oid" => $oid,
"lid" => $lid,
"cid" => $cid,
"comName" => $comName,
"comPrice" => $comPrice,
"ordTime" => $ordTime
);
array_push($arrLink,$arr);
}
return $arrLink;
}else{
echo "查詢訂單明細失敗!
";
}
}