mysqli — PHP Bind_param извлекает данные

Ребята, я использую Bind_param в php, чтобы получить имя пользователя и пароль из таблицы входа. мой вопрос, как я могу получить всю информацию о пользователе, и передать ее в переменную как объект? пожалуйста, смотрите мой код ниже

  require 'dbc.php';
require 'security.php';

$myusername=trim($_POST['strusername']);
$mypassword=trim($_POST['strpassword']);
$myusername =escape($myusername);
$mypassword=escape($mypassword);

$sql = "SELECT * FROM login WHERE strusername=? AND strpassword=?";

$stmt  = $db->prepare($sql);
$stmt->bind_param('ss',$myusername,$mypassword);
$stmt->execute();

$stmt->store_result();

if($stmt->num_rows){
echo "user verified, Access Granted.";

//      while($row=$stmt->fetch_object()){
//          $strfullname= $row->strfullname;
//          $strcompany= $row->strcompany;
//          $strdept= $row->strdept;
//          $strloc= $row->strloc;
//          $strposition= $row->strposition;
//          $strauthorization= $row->strauthorization;
//          $stremailadd= $row->stremailadd;
//          $strcostcent= $row->strcostcent;
//          $strtelephone= $row->strtelephone;
//      };
//    how to fetch all data in my query using param LIKE THIS

}else
{
echo "Invalid Username or Password";
}

0

Решение

Похоже, что вы ищете экстракт (), используется с fetch_row (). Таким образом, вы получите что-то вроде:

while ($row = $stmt->fetch_row()) {
extract($row, EXTR_OVERWRITE);
// your logic here...
}

Как справедливое предупреждение, это перезапишет любые переменные с тем же именем, что и столбцы вашей базы данных. Поскольку вы извлекаете информацию из базы данных, а не из суперглобала, вы, по крайней мере, знаете, во что вы ввязываетесь, но это все же риск, особенно если вы получаете этот код в глобальной области видимости, а не внутри функции / метода.

Таким образом, вы можете обернуть строку для извлечения в array_intersect_key (), вот так:

$allowedFields = array_flip(['strfullname', 'strcompany', 'strdept',
'strloc', 'strposition', 'strauthorization', 'stremailadd',
'strcostcent', 'strtelephone']);

while ($row = $stmt->fetch_row()) {
extract(array_intersect_key($row, $allowedFields), EXTR_OVERWRITE);
// your logic here...
}

поэтому ваш код документирует, какие поля внезапно превратятся в (локальные или глобальные) переменные.

0

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

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

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