Ändern Sie Ihre ursprünglichen Code gebundenen Parametern zu reflektieren mysqli verwenden, dies ist sicherer und sollte
$query="select * from members where useremail='$user_email' and password='$password'";
$result=$db->query($query);
$row = $db->fetch_array($result);
echo $row['id'];
an gebundenen Parametern arbeiten mit mysqli Aussagen vorbereitet
$query="select id from members where useremail=? and password=?"; // Don't use select *, select each column, ? are placeholders for your bind variables
$stmt = $connection->prepare($query);
if($stmt){
$stmt->bind_param("ss",$user_email,$password); // Bind in your variables, s is for string, i is for integers
$stmt->execute();
$stmt->bind_result($id); // bind the result to these variables, in the order you select
$stmt->store_result(); // Store if large result set, can throw error if server is setup to not handle more than x data
$stmt->fetch();
$stmt->close();
}
echo $id; // this would be same as $row['id'], $id now holds for example 5.
Wenn Sie mehrere Dinge auswählen, z Als "SELECT id,name FROM..."
, dann, wenn Sie bind_result (..), binden Sie sie nur n dort. $stmt->bind_result($id,$name);
jetzt $ id und $ name enthalten die Spaltendaten für diese Zeile, die Ihrer Abfrage entsprechen. Wenn mehrere Zeilen übereinstimmt, statt stmt- $ würde> fetch() Sie
while($stmt->fetch()){ // just like while($row = $result->fetch_assoc()){}
echo $id;
echo $name
}
Ihr Code tun würde, ist wahrscheinlich anfällig für [** SQL-Injection **] (https: //en.wikipedia. org/wiki/SQL_injection) Angriffe. Sie sollten vorbereitete Anweisungen mit gebundenen Parametern verwenden, entweder über die [** mysqli **] (https://secure.php.net/manual/en/mysqli.prepare.php) oder [** PDO **] (https : //secure.php.net/manual/de/pdo.prepared-statements.php) Treiber. [** Dieser Post **] (https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) hat einige gute Beispiele. –
@AlexHowansky ich benutze mysqli. –
Ja, aber Sie verwenden keine vorbereiteten Anweisungen mit gebundenen Parametern. –