如何在MYSQLI-PHP中使用逻辑运算符

如何在MYSQLI-PHP中使用逻辑运算符,php,mysql,mysqli,Php,Mysql,Mysqli,我正在编写一个简单的select语句,由于连接对象是mysqli,我不能使用and、&&,或类似的运算符,因为它会产生错误 function getdata($value1,$value2) { global $conn; $query = "SELECT id, name from users WHERE id!=$value1 && email==$value2 "; $result = $conn->query($query); } 这不起作用:-( 错误:尝试获取

我正在编写一个简单的select语句,由于连接对象是mysqli,我不能使用and、&&,或类似的运算符,因为它会产生错误

function getdata($value1,$value2)
{
global $conn;
$query = "SELECT id, name from users WHERE id!=$value1 && email==$value2 ";
$result = $conn->query($query);
}
这不起作用:-(

错误:尝试获取非对象..bla..的属性。。
这意味着我的sql语句出现了一些问题,比如当我尝试不使用逻辑运算符时,它可以工作,但毫无用处

使用prepare语句和bind参数 我参考了这条线索并尝试了prepare语句……但我想我做错了什么

$query=$conn->prepare("SELECT id, name from users WHERE id!=? && email==?");
    $query->bindParam("ss", $value1,$value2); // line 20 error points here
    $query->execute();
错误:

Call to a member function bindParam() on a non-object in /mydir/file.php line 20
p.S.
var\u dump($query);
返回
bool(false)


您可以在上检查类型。

替换
&

=
替换为“=”


它返回的是
false
,但由于存在
mysq
l语法错误,您还可以尝试打开错误报告以查看异常情况您的查询中存在多个问题

  • 对于作业,请使用“=”而不是“==”
  • 在第一部分中,您已将查询分配给变量$query,并使用变量$sql运行查询(错误)
  • 修改后的代码如下所示:

    $query = "SELECT id, name from users WHERE id!='$value1' AND email='$value2'";
    $result = $conn->query($query);
    

    |==不是有效的SQL运算符或者我编写了它。2)我的代码中有正确的查询$结果=$conn->query($query);有问题的更正。我将尝试wid single“=”并发布结果,感谢single“=”有效。这也不需要准备语句用例。简单很棒!!:-)您的解决方案是针对无准备声明的权利(在我的案例1中)?成功了。:-)我不明白有
    email='$value2'
    ,而id$value1不需要相同的感谢(`mark')。当你比较一个数字字段时,你不需要引号。如果字段是varchar,则需要引号。好的,但是由于m使用变量,它不是以正确的格式替换数值或varchar值吗?我知道这很愚蠢。。不要我的:D
    $query=$conn->prepare("SELECT id, name from users WHERE id != ? && email = ?");
    $query->bind_param('ds', $value1, $value2);
    $query->execute();
    
    $query = "SELECT id, name from users WHERE id!='$value1' AND email='$value2'";
    $result = $conn->query($query);