我想知道这有什么问题。
首先,它显示了一个错误,例如mysqli_fetch_assoc() 期望参数 1 mysqli_result,给定整数。
错误显示在第 while ($prof_info = mysqli_fetch_assoc($profRow)) {
行中
下面的代码:
$profInfo = "SELECT * FROM register_user
WHERE emailAddress = '". $_SESSION['user_info']['firstName'] ."'";
$profileInformation = mysqli_query($mysqli, $profInfo) or die(mysqli_error($mysqli));
$profRow = mysqli_num_rows($profileInformation);
while ($prof_info = mysqli_fetch_assoc($profRow)) {
$profFirstName = htmlspecialchars($prof_info["firstName"]);
$profLastName = htmlspecialchars($prof_info["lastName"]);
$profMail = htmlspecialchars($prof_info["emailAddress"]);
$profAdd = htmlspecialchars($prof_info["mainAddress"]);
$profCountry = htmlspecialchars($allRow["registerCountry"]);
$profCity = htmlspecialchars($allRow["registerCity"]);
$profZip = htmlspecialchars($allRow["postalCode"]);
$profPostalCode = mysqli_escape_string($profZip);
echo "<li> Name : </li>";
echo "<span class='"infoProfile'"> <p> $profFirstName $profLastName </p> </span>";
echo "<li> Email : </li>";
echo "<span class='"infoProfile'"> <p> $profMail </p> </span>";
echo "<li> Main Address : </li>";
echo "<span class='"infoProfile'"> <p> $profAdd </p> </span>";
echo "<li> Country : </li>";
echo "<span class='"infoProfile'"> <p> $profCountry </p> </span>";
echo "<li> City : </li>";
echo "<span class='"infoProfile'"> <p> $profCity </p> </span>";
echo "<li> Postal Code : </li>";
echo "<span class='"infoProfile'"> <p> $profPostalCode </p> </span>";
echo "<p class='"profileLogout'"> <a href='"logout'"> LOGOUT </a> </p>";
}
mysqli_close($mysqli);
有什么想法吗?
你必须将$profileInformation
传递到mysqli_fetch_assoc
:
while ($prof_info = mysqli_fetch_assoc($profileInformation)) {
...
}
mysqli_query($mysqli, $profInfo)
返回对象mysql_result
,whuch 将进一步传递到 mysqli_fetch_assoc
中。
相反,您正在尝试传递一个整数,该整数由 mysqli_num_rows
返回。
使用$profileInformation
资源变量获取
$profInfo = "SELECT * FROM register_user
WHERE emailAddress = '". $_SESSION['user_info']['firstName'] ."'";
$profileInformation = mysqli_query($mysqli, $profInfo) or die(mysqli_error($mysqli)); // This is actual mysql result and which consist of resource Id
$profRow = mysqli_num_rows($profileInformation);
while ($prof_info = mysqli_fetch_assoc($profileInformation )) {
//We have to pass resource id to `mysqli_fetch`
$profFirstName = htmlspecialchars($prof_info["firstName"]);
$profLastName = htmlspecialchars($prof_info["lastName"]);
$profMail = htmlspecialchars($prof_info["emailAddress"]);
$profAdd = htmlspecialchars($prof_info["mainAddress"]);
$profCountry = htmlspecialchars($allRow["registerCountry"]);
$profCity = htmlspecialchars($allRow["registerCity"]);
$profZip = htmlspecialchars($allRow["postalCode"]);
$profPostalCode = mysqli_escape_string($profZip);
echo "<li> Name : </li>";
echo "<span class='"infoProfile'"> <p> $profFirstName $profLastName </p> </span>";
echo "<li> Email : </li>";
echo "<span class='"infoProfile'"> <p> $profMail </p> </span>";
echo "<li> Main Address : </li>";
echo "<span class='"infoProfile'"> <p> $profAdd </p> </span>";
echo "<li> Country : </li>";
echo "<span class='"infoProfile'"> <p> $profCountry </p> </span>";
echo "<li> City : </li>";
echo "<span class='"infoProfile'"> <p> $profCity </p> </span>";
echo "<li> Postal Code : </li>";
echo "<span class='"infoProfile'"> <p> $profPostalCode </p> </span>";
echo "<p class='"profileLogout'"> <a href='"logout'"> LOGOUT </a> </p>";
}
mysqli_close($mysqli);