Php MySQLi多个条件,怎么了
我试图做以下准备好的陈述:Php MySQLi多个条件,怎么了,php,mysql,mysqli,prepared-statement,Php,Mysql,Mysqli,Prepared Statement,我试图做以下准备好的陈述: $stmt = $mysqli->prepare("SELECT COUNT(*) FROM table WHERE from = '?' && to = '?' LIMIT 1"); $stmt->bind_param('ii', $fromId, $toId); $stmt->execute(); $stmt->bind_result($db_offeredAlready); $stm
$stmt = $mysqli->prepare("SELECT COUNT(*) FROM table WHERE from = '?' && to = '?' LIMIT 1");
$stmt->bind_param('ii', $fromId, $toId);
$stmt->execute();
$stmt->bind_result($db_offeredAlready);
$stmt->fetch();
$stmt->close();
我得到以下错误:
Fatal error: Call to a member function bind_param() on a non-object in /path/to/script.php on line 97
加上'and'会让我
$stmt = $mysqli->prepare("SELECT COUNT(*) FROM `table` WHERE `from` = '?' && `to` = '?' LIMIT 1");
以及以下
Warning: mysqli_stmt::bind_param() [mysqli-stmt.bind-param]: Number of variables doesn't match number of parameters in prepared statement in /path/to/script.php on line 97
显然绑定变量的数量与?标志。我尝试过添加和删除“and”的所有组合,但都没有效果。这份事先准备好的声明有什么不对?我可以用一个条件进行选择,但它会有多个占位符?不需要引用
$stmt = $mysqli->prepare("SELECT COUNT(*) FROM `table` WHERE `from` = ? && `to` = ? LIMIT 1");
占位符?不需要引用
$stmt = $mysqli->prepare("SELECT COUNT(*) FROM `table` WHERE `from` = ? && `to` = ? LIMIT 1");
对于第一个示例,不能有一个名为from的列,因为mysql将其解释为语句的一部分。使用背面的记号可以做到这一点。现在它只是解决了为什么绑定部分不工作的问题。对于第一个示例,您不能有一个名为from的列,因为mysql将其解释为语句的一部分。使用背面的记号可以做到这一点。现在,它正在解决绑定部分不工作的原因。