PHP:尝试获取非对象的属性

PHP:尝试获取非对象的属性,php,mysqli,mysql-num-rows,Php,Mysqli,Mysql Num Rows,我正在处理一个函数,它返回表是否存在 但它总是注意到: Notice: Trying to get property of non-object [...] on line 10 在 $mysqli变量的设置如下: $mysqli = new mysqli(mysqli_host, mysqli_user, mysqli_password, mysqli_database); 如何解决这个问题?您的SQL语法错误。检查变量$table的值。你应该吃点类似的东西 SHOW TABLES LIK

我正在处理一个函数,它返回表是否存在

但它总是注意到:

Notice: Trying to get property of non-object [...] on line 10

$mysqli变量的设置如下:

$mysqli = new mysqli(mysqli_host, mysqli_user, mysqli_password, mysqli_database);

如何解决这个问题?

您的SQL语法错误。检查变量$table的值。你应该吃点类似的东西

SHOW TABLES LIKE "%"

您的SQL语法错误。检查变量$table的值。你应该吃点类似的东西

SHOW TABLES LIKE "%"
我漏掉了引语

$result = $mysqli->query("SHOW TABLES LIKE \"$table\"");

谢谢你的帮助。

我把引语漏掉了

$result = $mysqli->query("SHOW TABLES LIKE \"$table\"");


谢谢您的帮助。

您为什么需要这样的功能?你还不知道你的表吗?你真的想看看表是否存在吗?或者您的意思是表中是否包含数据?使用num rows不是查看表是否存在的方法。您可以将“if($result->num_rows>0)”更改为“if($result&&$result->num_rows>0)”,它应该类似于
显示类似于“$table”的表(您需要单引号)。您还需要确保清理和属性escape$table变量。调试代码后,@Orangepill是正确的。您缺少表中的单引号。正如他所说的,确保对input$table进行清理。为什么需要这样一个函数?你还不知道你的表吗?你真的想看看表是否存在吗?或者您的意思是表中是否包含数据?使用num rows不是查看表是否存在的方法。您可以将“if($result->num_rows>0)”更改为“if($result&&$result->num_rows>0)”,它应该类似于
显示类似于“$table”的表(您需要单引号)。您还需要确保清理和属性escape$table变量。调试代码后,@Orangepill是正确的。您缺少表中的单引号。正如他所说的,确保清理输入$table。我不是downvoter,但%不是正则表达式,此代码将返回所有表,而不仅仅是用户要查找的表。当然,我可以使用“.”或“*”来处理重要的内容。。。这只是一个通配符,我用它代替了$table。。。如果$table=%1,他将得到所有表的列表;如果$table=他只会得到那张表。好的,nvm…我不是downvoter,但%不是正则表达式,此代码将返回所有表,而不仅仅是用户要查找的表。当然,我可以使用“.”或“*”来表示重要的内容。。。这只是一个通配符,我用它代替了$table。。。如果$table=%1,他将得到所有表的列表;如果$table=他只会得到那张表。好的,nvm。。。
$result = $mysqli->query("SHOW TABLES LIKE \"" . $table . "\"");
$result = $mysqli->query("SHOW TABLES LIKE '" . $table . "'");