【发布时间】:2019-09-26 09:27:37
【问题描述】:
我知道这段代码很容易受到攻击,但我无法从中做出安全的准备声明。任何知道如何获取存储在变量$userrecord 中的成员记录数组和存储在$rowsnumber 中的行数的任何人都可以帮助我。我之前没有使用过 MySQLi 准备好的语句
/*This query returns member records in an array format*/
$querymember = "SELECT * FROM members WHERE phone='$providedphone' ";
$member = mysqli_query($conn,$querymember);
// Number of rows
$rowsnumber = $member->num_rows;
// User record (Entity)
$userrecords = $member->fetch_array(MYSQLI_NUM);
我尝试过的
$stmt = $mysqli->prepare("SELECT * FROM members WHERE phone = ?");
$stmt->bind_param("s", $providedphone);
$stmt->execute();
// To get number of rows
$rowsnumber = $stmt->num_rows;
// To get user records
$userrecords = $stmt->get_result();
【问题讨论】:
-
获取
while ($row = $userrecords->fetch_array()).... -
那是错误的重复伙伴 - OP 正确地阻止了注入,只是没有获取结果。
标签: php mysql mysqli prepared-statement parameterized-query