Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我在带有NOT in子句的SELECT语句中使用fetch_object()时出错_Sql - Fatal编程技术网

Sql 我在带有NOT in子句的SELECT语句中使用fetch_object()时出错

Sql 我在带有NOT in子句的SELECT语句中使用fetch_object()时出错,sql,Sql,i、 例如: select * from tblname where col1 NOT IN array; 不在…中使用有问题。。。。但当我这样做时就不行了:col1='singlevalue'请帮助使用从tblname中选择*,其中col1不在('value1','value2',…,'valueX')您的“数组”中可能有空值。这将导致NOT IN()以您意想不到的方式运行。检查一下。发布您的代码,这很有效(如果我正确理解您的问题): 选择userid、username 来自用户

i、 例如:

select 
  * 
from tblname 
where col1 NOT IN array;

不在…中使用有问题。。。。但当我这样做时就不行了:
col1='singlevalue'请帮助使用
从tblname中选择*,其中col1不在('value1','value2',…,'valueX')
您的“数组”中可能有空值。这将导致NOT IN()以您意想不到的方式运行。检查一下。

发布您的代码,这很有效(如果我正确理解您的问题):

选择userid、username
来自用户
其中userid不在(1,2,3,4)中

限制10

确保查看准确的查询会有所帮助,但不在后面是数组。它后跟括号内的(a、b、c)逗号分隔字符串

$inString = "(" . implode(", ", $array) . ")"; //looks like ('val1', 'val2', 'val3')
$sql = "SELECT * FROM tblname WHERE col1 NOT IN $inString"
-=根据注释进行编辑--

你有所有这些步骤吗?问题是'false'->fetch_object()不好false是当查询有错误或没有结果时返回的值。这似乎是因为您的查询不正确。

您应该:

  • 格式化您的代码
  • 准确描述你的问题所在;如果有错误消息,请发布该消息
  • 提供尽可能多的合理信息,以便我们很容易了解您的意图
编辑:更多要点:

  • 显示您收到的错误消息
  • 输出执行的sql语句并尝试手动执行(使用类似的phpmyadmin)
  • var\u dump
    print\u r
    您的结果并查看您得到的结果-如果它是
    false
    ,请思考可能的错误:要么您的sql返回零行,要么其中有故障-这两种可能性中的一种
  • 如果你得到了更多的信息,编辑你的问题并把它列在那里,到目前为止不要强迫每个人阅读每个答案的每一条评论——你已经给出了一些信息,但它会传播到任何地方
  • fetch\u object
    不会是问题——正如所说,问题要么是零行的结果,要么是错误的语句
到目前为止,这只是一个评论,我试图回答你的问题(还不清楚你的问题是什么):

听起来你还不明白为什么不在工作,也没看电视。您的查询应该如下所示:

SELECT * FROM tblname where col1 NOT IN (1, 2, 3);
             # values of your array here ^^^^^^^
要从php数组构建它,可以使用或类似的方法

编辑:一个非常基本的解决方案可能是这样的(不是说你应该检查输入以避免sql注入之类的东西):


问题是什么?显示导致您的问题的完整sql请求我不敢相信我回答了这个问题。如果您遇到错误:请发布错误消息$query=“从ID不在$u会话[首选项]中的ABC中选择*”$结果=$mysqli->query($query)$行=$res->fetch_object();致命错误:对非对象调用成员函数fetch_object(),现在是“from…HAVING…”-在上面的问题中是“from…WHERE…”-你想做什么?我认为有可能是问题所在,在这种情况下你应该用什么呢。。但是为了打印返回的结果,必须使用fetch_object()。。。是吗???我想我需要你的确切代码来解释,你在用什么数据库?在使用mysql\u fetch\u object或其他任何工具获取结果$query=“SELECT*FROM ABC have ID NOT IN$\u SESSION[preferences]”之前,需要使用mysql\u query($sql,$conn)(或其他任何工具,如果不使用mysql)执行查询$结果=$mysqli->query($query);-使用此命令时出现问题:$row=$result->fetch_object();我不太了解mysqli,但我认为唯一的问题是查询字符串,我会尝试更正。对不起,当我直接查询数据库时,查询似乎起作用了。。fetch_对象在我使用时起作用:其中col1=value。。。但不是当我用不在…没有问题在不在。。。只有在尝试打印结果集时出现问题…我想我对NOT IN语句没有问题。。。只有当我使用fetch_object打印结果集时才会出现问题。我认为这不会有问题-您是否尝试过输出sql并手动在phpmyadmin(或其他)中执行它?您是否收到错误消息或预期结果?我收到:致命错误:对非对象调用成员函数fetch_object(),问题出在哪里?您的结果不是对象,正如它所说的-请对您的结果进行var_dump()并查看您得到的结果。不要让我们把你的每一条信息都问出来——你不想得到帮助……但是当我使用:where col1=value;当我使用以下命令时会发生错误:其中col1不在…$query=“SELECT*FROM ABC have ID not in$_SESSION[preferences]”$结果=$mysqli->query($query);使用此选项时出现问题:$row=$res->fetch_object()@凯拉什:“问题”是什么意思?为什么不发布错误消息?致命错误:对非对象调用成员函数fetch_object(),数组来自何处?在这种情况下,您需要从该数组创建一个字符串dynamicali,并将其放入查询中
SELECT * FROM tblname where col1 NOT IN (1, 2, 3);
             # values of your array here ^^^^^^^
// for simple numerical values
$sql = "SELECT * FROM tblname where col1 NOT IN (".implode(", ",$myArray).")";

// for strings
$sql = "SELECT * FROM tblname where col1 NOT IN ('".implode("', '",$myArray)."')";