簡體   English   中英

嵌套在另一個准備好的語句內的准備好的語句

[英]Prepared statement nested inside another prepared statement

我試圖弄清楚如何在另一個准備好的語句循環中運行第二個准備好的語句。 不是最佳選擇,但不知道該如何解決...

這是我正在嘗試的:

$stmt = $mysqli->stmt_init();

### GET THE CURRENT USERS FRIENDS ###
$sql = "SELECT f.fk_user_id2
             , u.username
             , u.profileimg FROM ".$prefix."_friends f 
                INNER JOIN ".$prefix."_users u
                    ON f.fk_user_id2 = u.id     
            WHERE f.fk_user_id1 = ? ORDER BY u.username ASC";

if($stmt->prepare($sql)){

    $stmt->bind_param('i',$playerid);
    $stmt->execute();
    $stmt->bind_result($userPoints);
    while ($stmt->fetch()){

        $friendid = $row1['fk_user_id2'];
        $friendname = $row1['username'];
        if(empty($row1['profileimg'])){
            $profileimg = 'http://duefmun.dk/profileimages/noimage.png';
        } else {
            $profileimg = 'http://duefmun.dk/profileimages/'.$row1['profileimg'];
        }

        ### GET THE HISTORY ###
        $sql1 = mysql_query("SELECT wins, games FROM ".$prefix."_newversus WHERE fk_player=? AND fk_opponent=?");
        if($stmt->prepare($sql1)){
            $stmt->bind_param('ii',$playerid,$friendid);
            $stmt->execute();
            $stmt->bind_result($wins,$games);
            $stmt->fetch();

            if($games == 0){
                $history = $languagestring[165];
            } else {
                $history = $languagestring[168].' '.$wins.' '.$languagestring[169].' '.$games.' '.$languagestring[170];
            }
        }

        $string .= $friendname.','.$friendid.','.$history.','.$profileimg.'^';

    }
} 

$string = substr($string,0, (strlen($string)-1)); 
echo $string.'%';

$stmt->close();

也許可以內部加入第二條語句,但不知道如何。 請幫助並提前致謝:-/

這不是一個准備語句是你的問題,但只是一個變量
在這種情況下,您只是重寫變量$ stmt。
為第二個循環命名(並檢查其他變量是否受感染)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM