gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 07:49:31 24 4
gpt4 key购买 nike

我正在编写一个简单的选择语句,由于连接对象是 mysqli,我不能使用 AND 、 && 、 OR 之类的运算符,因为它会给出错误

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

这不起作用:-(

错误:试图获取非对象的属性.. bla bla ..
这意味着我的sql语句有问题,因为当我尝试不使用逻辑运算符时它可以工作,但当然没有用。

使用准备语句和绑定(bind)参数我提到了这个帖子SELECT in MYSQLI并尝试使用准备语句..但我猜我做错了什么

$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

附注var_dump($query); 返回 bool(false)

最佳答案

SELECT id, name FROM users WHERE id <> $value1 AND email = '$value2'"

<>!=是一样的。 AND&&是一样的。您可能会看到AND<>因为这是 SQL 中的标准。问题是等于运算符是 =而不是== .

在问题的第二部分,ss是错的。 d适用于 double 类型,s用于字符串。

$query=$conn->prepare("SELECT id, name from users WHERE id != ? && email = ?");
$query->bind_param('ds', $value1, $value2);
$query->execute();

您可以在php bind_param function help上检查类型.

关于php - 如何在 MYSQLI - PHP 中使用逻辑运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26850018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com