获取非对象的属性num_rows [英] Get property num_rows of non-object

查看:58
本文介绍了获取非对象的属性num_rows的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个PHP脚本,可以发送电子邮件,从表中选择数据,然后将一些数据插入表中.我在同一文件中有3个查询.但是在最后一个查询中,我收到了错误消息

I have a PHP script that sends an email, selects data from a table and then inserts some data into a table. I have 3 querys in the same file. But on the last query I get the error message

尝试在第76行的C:\ xampp \ htdocs \ Revolutionen \ includes \ accept.php中获取非对象的属性"num_rows"

Trying to get property 'num_rows' of non-object in C:\xampp\htdocs\Revolutionen\includes\accept.php on line 76

我一直在寻找任何拼写错误,但找不到任何错误.有谁比我聪明,可以帮助我?呵呵.

Ive looked for any typo-errors but coulden't find any. Anyone that's smarter than me that could help me out? Hehe.

完整代码:

$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();
?>```

推荐答案

INSERT查询不会返回结果.因此,当您这样做

INSERT queries don't return results. So when you do

$result3 = $conn->query($sql4);

$result3将是TRUEFALSE,而不是mysqli_result对象.您不应该尝试检查行数或调用$result3->fetch_assoc(),因为没有要获取的内容.只需检查它是否成功:

$result3 will be either TRUE or FALSE, not a mysqli_result object. You shouldn't try to check the number of rows or call $result3->fetch_assoc(), since there's nothing to fetch. Just check whether it was successful:

if ($result3) {
    echo 'Personen blev automatiskt whitelistad.';
} else {
    echo "Error" . $conn->error;
}

这篇关于获取非对象的属性num_rows的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆