我正在尝试截断数据库中的表。我得到的错误是
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;
}
?>
答案 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