致命错误:在布尔值上调用成员函数myfunction()

时间:2019-05-08 06:37:35

标签: php mysql wordpress

几年前,我为Wordpress网站构建了自定义的详细表格和计算器。我们只是将站点迁移到了新主机,我的代码出现了问题。由于它是自定义的,并且以特定的方式编码,因此出现错误,必须将MySQL的数据库,用户和密码从旧更改为新。这样做之后,我遇到了错误

  

致命错误:在...中的布尔值上调用成员函数free()

我根本没有更改代码中的任何内容。只是在迁移之后我才得到错误,但是我只更改了数据库信息,我不确定为什么会收到新错误?

<?php
    $host='localhost';
    $port=3306;
    $socket='';
    $user='my_user';
    $password='passW0rd!';
    $dbname='my_db';

    $con = new mysqli($host, $user, $password, $dbname, $port, $socket) or die ('Could not connect to the database server' . mysqli_connect_error());

    //echo "Connected to Database<br />";
    $sql = "SELECT ID, Description FROM adv_sources WHERE WebItem = '-1' ORDER BY Description ASC";
    $result = $con->query($sql);

    $options = "";
    echo "<label for 'adv_source'>How did you hear about Us?</label>\n";
    echo "<select name='adv_source' id='adv_source' class='pure-u-22-24' required>\n";
    echo "<option value=''>[Choose One Please]</option>\n";

    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {

            $id = $row["ID"];
            $thing = $row["Description"];
            //$options.="<option value=\"$id\">".$thing."</option>"; 
            echo "<option value=\"$id\">" . $thing . "</option>\n";
        }
    }
    echo "</select>";
    $result->free();
    $con->close();
?>

我相信错误与$result有关,但是我几乎不了解PHP。我遇到了函数和代码未返回布尔值的问题,但是我已经尝试了几个小时来研究此问题,并且在8个小时内项目到期日仍然没有任何反应(我想睡一觉)。

1 个答案:

答案 0 :(得分:0)

查询失败时,它将返回false。您应该在$result = $con->query($sql);检查中将所有相关代码放在if ($result !== false) {之后。