[英]Receive multiple columns from one sql request in PHP
我正在使用朋友列表功能,但無法弄清楚如何正確接收值。
我的代碼如下所示:
$getuid = $mysqli->prepare("SELECT `uid` FROM `users` WHERE name = ? OR name = ?");
$getuid->bind_param("ss", $user, $friend);
$getuid->execute();
$getuid->bind_result($uid);
$getuid->fetch();
$getuid->close();
$resetpass = $mysqli->prepare("INSERT INTO `friendlist` SET `friend1`=?, `friend2`=?, `accept`=0");
$resetpass->bind_param("ss", $uid[0], $uid[1]);
在第一個查詢中,我恰好返回了兩個uid值。 我想在第二個查詢中使用它們。 似乎bind_result
不起作用,既不能作為數組使用,也不能在bind_result
使用兩個值時使用。 我如何使用mysqli做到這一點。 我無法使用get_result
因為我使用的是PHP 5.2。
有人可以幫助我嗎?
我認為您需要這樣的東西。 我還沒有測試過,也許有更好的方法可以做到這一點。 我只是嘗試了對原始代碼所做的最快更改,才能使其正常工作。
$query = "SELECT uid FROM users WHERE name = '".$user."' OR name = '".$friend."'";
$getuid = $mysqli->query($query);
if($uid = $getuid->fetch_assoc())
{
$query = "INSERT INTO friendlist SET friend1= '".$uid['uid'][0]."', friend2='".$uid['uid'][1]."', accept=0";
$mysqli->query($query)
}
$getuid->close();
好吧,我終於了解了訪存的概念。
為了接收所有值,我必須在while循環中檢索它們。
解決方法如下:
$getuid = $mysqli->prepare("SELECT `uid` FROM `users` WHERE name = ? OR name = ?");
$getuid->bind_param("ss", $user, $friend);
$arra = array();
$getuid->execute();
$getuid->bind_result($uid);
while ($getuid->fetch()) {
$arra[] = $uid;
}
現在,我可以使用$arra[0]
和$arra[1]
調用數組值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.