php致命错误

bcs8qyzn  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(319)

我正试图截断数据库中的一个表。我得到的错误是
php致命错误:未捕获错误:在/var/www/html/rubynetwork\u servers/truncate中对boolean上的成员函数query()调用。php:4\n堆栈跟踪:\n#0{main}\n在第4行的/var/www/html/rubynetwork\u servers/truncate.php中抛出
我试过各种方法,包括在stackoverflow上寻找答案。我的密码是

<?php 
    error_reporting(E_ERROR | E_PARSE);
    $con = mysqli_connect("localhost","root","-snip-","ruby");
    $sql = "truncate table ruby_servers";
    if ($con->query($sql) === TRUE) {
    } else {
         echo "Error: " . $sql . "<br>" . $conn->error;
    }
?>
kxe2p93d

kxe2p93d1#

问题在于你正在编程的模式。正确的工作代码为:

<?
    error_reporting(E_ERROR | E_PARSE);
    $mysqli = new mysqli("localhost", "username", "password", "databasename");
    $sql= "TRUNCATE TABLE tbl_name";
    //$mysqli->query($sql)                // this will execute query
                                    // Your checking conditions here.
    if ($mysqli->query($sql) === TRUE) {
    } else {
         echo "Error: " . $sql . "<br>" . $mysqli->error;
    }
    $mysqli->close();
?>

请注意我使用“new”的方式。它是面向对象编程方法所要求的。
您正在将面向对象的方式应用到过程模式的代码中。
“->”只能在有“new”对象时使用。所以,用新的。
使用后不要忘记关闭连接。
如果仍然很难理解,那么仍然可以使用mysqli扩展的过程模式。请不要在新项目中使用旧的mysql扩展。
参考文献:http://php.net/manual/en/mysqli.quickstart.dual-interface.php

相关问题