我有一个PHP脚本,可以发送电子邮件,从表中选择数据,然后将一些数据插入表中。我在同一文件中有3个查询。但是在最后一个查询中,我收到错误消息
尝试在第76行的C:\ xampp \ htdocs \ Revolutionen \ includes \ accept.php中获取非对象的属性“ num_rows”
我一直在寻找任何拼写错误,但找不到任何错误。有谁比我聪明,可以帮助我?呵呵。
完整代码:
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "emildeveloping5";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysqli_set_charset($conn,"utf8");
$sql = "UPDATE ansokningar SET besvarad=2 WHERE id=".$_GET['row_id'];
if ($conn->query($sql) === TRUE) {
echo "Ansökningen godkänndes.";
} else {
echo "Error updating record: " . $conn->error;
}
$sql2 = "SELECT email FROM ansokningar WHERE id=".$_GET['row_id'];
$result = $conn->query($sql2);
if ($result->num_rows > 0) {
echo "";
while($row = $result->fetch_assoc()) {
$email = $row['email'];
}
$to = "$email";
$subject = "Ansökan | Stockholm Emergency Roleplay";
$txt = "
<html>
<head>
</head>
<body>
<p>Din ansökan är godkänd!</p>
<p>Intervju tider står i våran Discord.</p>
<p>Mvh Stockholm Emergency Roleplay.</p>
</body>
</html>
";
$headers = "From: noreply@stockholmemergencyroleplay.se" . "\r\n" .
"CC: noreply@stockholmemergencyroleplay.se";
mail($to,$subject,$txt,$headers);
echo ('Email är skickat.');
} else {
echo "Error" . $conn->error;
}
$sql3 = "SELECT steam FROM ansokningar WHERE id=".$_GET['row_id'];
$result2 = $conn->query($sql3);
if ($result2->num_rows > 0) {
echo "";
while($row = $result2->fetch_assoc()) {
$steam = $row['steam'];
echo "";
}
echo ('Steam HEX fångat.');
} else {
echo "Error" . $conn->error;
}
$sql4 = "INSERT INTO whitelist (identifier, whitelisted) VALUES ('$steam', '1')";
$result3 = $conn->query($sql4);
if ($result3->num_rows > 0) {
echo "";
while($row = $result3->fetch_assoc()) {
echo "";
}
echo ('Personen blev automatiskt whitelistad.');
} else {
echo "Error" . $conn->error;
}
$conn->close();
?>```
答案 0 :(得分:-1)
实际上,问题是您试图在while循环之外访问变量。
if ($result2->num_rows > 0)
{
echo "";
while($row =$result2->fetch_assoc()) {
$steam = $row['steam'];
echo "";
$sql4 = "INSERT INTO whitelist (identifier, whitelisted) VALUES. ('$steam', '1')";
}
echo 'Steam HEX fångat.'; }
else { echo "Error" . $conn->error; }
然后$ sql4 =选择白名单查询
答案 1 :(得分:-1)
INSERT
查询不会返回结果。因此,当您这样做
$result3 = $conn->query($sql4);
$result3
将是TRUE
或FALSE
,而不是mysqli_result
对象。您不应该尝试检查行数或调用$result3->fetch_assoc()
,因为没有什么可获取的。只需检查它是否成功:
if ($result3) {
echo 'Personen blev automatiskt whitelistad.';
} else {
echo "Error" . $conn->error;
}