Ребята, я использую 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";
}
Похоже, что вы ищете экстракт (), используется с 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...
}
поэтому ваш код документирует, какие поля внезапно превратятся в (локальные или глобальные) переменные.
Других решений пока нет …