MySQLi несколько подготовленных операторов, используя предыдущую извлеченную переменную $

$stmt = $mysqli->prepare("SELECT id,name,master,level,exp FROM player.guild ORDER BY exp DESC");
$stmt->execute();
$stmt->bind_result($id, $name, $master, $level, $exp);
$stmt->fetch();
$guildnum = $stmt->num_rows;
$stmt->store_result();
$stmt->close();

$stmt2 = $mysqli->prepare("SELECT id,login FROM account.account WHERE id=?");
$stmt2->bind_param("i", $master);
$stmt2->execute();
$stmt2->bind_result($boss_id, $boss_name);
$stmt2->store_result();
$stmt2->close();

$stmt3 = $mysqli->prepare("SELECT empire FROM player.player_index WHERE id=?");
$stmt3->bind_param("i", $boss_id);
$stmt3->execute();
$stmt3->bind_result($empire);
$stmt3->store_result();
$stmt3->close();

$ stm2 и $ stm3 не возвращают результат ..

// ОБЪЯСНЕНИЕ КОДА

$ stm извлекает некоторые детали и сохраняет их в $ переменных

$ stm2 использует переменную $ master для извлечения «id» и «login» и сохранения их в других переменных

$ stm3 использует $ boss_id (хранится в $ stm2) для извлечения и установки переменной $ empire

// ОБЪЯСНЕНИЕ КОДА

Кто-нибудь может мне помочь?

С уважением.

2

Решение

Так что, если все правильно, просто нужно получать ценности (bind_result)

    $stmt = $mysqli->prepare("SELECT id,name,master,level,exp FROM player.guild ORDER BY exp DESC");
$stmt->execute();
$stmt->bind_result($id, $name, $master, $level, $exp);
$stmt->fetch(); //fetch values
$guildnum = $stmt->num_rows;
$stmt->store_result();
$stmt->close();

$stmt2 = $mysqli->prepare("SELECT id,login FROM account.account WHERE id=?");
$stmt2->bind_param("i", $master);
$stmt2->execute();
$stmt2->bind_result($boss_id, $boss_name);
$stmt2->fetch(); //fetch values
$stmt2->close();

$stmt3 = $mysqli->prepare("SELECT empire FROM player.player_index WHERE id=?");
$stmt3->bind_param("i", $boss_id);
$stmt3->execute();
$stmt3->bind_result($empire);
$stmt3->fetch(); //fetch values
$stmt3->close();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]