截断时Php致命错误

时间:2018-06-03 15:37:37

标签: php html mysql mysqli

我正在尝试截断数据库中的表。我得到的错误是

  

PHP致命错误:未捕获错误:在/var/www/html/rubynetwork_servers/truncate.php:4 \ nStack跟踪中调用boolean上的成员函数query():\ n#0 {main} \ n抛出第4行的/var/www/html/rubynetwork_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;
    }
?>

1 个答案:

答案 0 :(得分:0)

问题在于您正在编程的模式。正确的工作代码将是:

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

请注意我使用的方式&#39; new&#39;。它是面向对象的编程方式所必需的。

您正在将面向对象的方式应用于程序模式的代码。

&#39; - &GT;&#39;只有当你有一个&#34; new&#34;宾语。所以,使用new。

请勿忘记在使用后关闭连接。

如果你仍然难以理解,那么你仍然可以使用mysqli扩展的程序模式。请不要在新项目中使用旧的mysql扩展名。

参考: http://php.net/manual/en/mysqli.quickstart.dual-interface.php