Я сделал этот пример кода:
$db = new mysqli("localhost","root","password","xxx"); $statement = $db->prepare("SELECT name, password FROM persons WHERE name=? LIMIT 1"); $statement->bind_param('s', "kevin"); $statement->execute(); if($statement->num_rows){ $statement->bind_result($dbname, $dbpassword); $statement->free_result(); }; echo $dbname; echo $dbpass;
Как использовать / получить $ dbname и $ dbpassword напрямую, не используя что-то вроде:
while($statement->fetch()){ echo $dbname; }
вwhile($statement->fetch()){ echo $dbname; }
Я хочу использовать $ dbname и dbpassword напрямую. Каков наилучший подход? Что я делаю не так.
Я нашел ответ:
Мне нужно было сохранить результат (сохранить результат (получить свойства))
Мне нужно было получить результат (получить результаты из подготовленного оператора в связанные переменные). Удовлетворительно без цикла while.
$db = new mysqli("localhost","root","password","xxx"); $statement = $db->prepare("SELECT name, password FROM persons WHERE name=? LIMIT 1"); $statement->bind_param('s', "kevin"); $statement->execute(); $statement->store_result(); // this is what I was missing if($statement->num_rows){ $statement->bind_result($dbname, $dbpassword); $statement->fetch(); // this is what I was missing $statement->free_result(); echo $dbname; echo $dbpass; };