PHP SQL STMT选择多个LIKE?可能吗?

PHP SQL STMT选择多个LIKE?可能吗?,php,mysql,sql,select,mysqli,Php,Mysql,Sql,Select,Mysqli,php sql连接中存在错误: mysqli_stmt::bind_param():变量的数量与中prepared语句中的参数数量不匹配 这是我正在使用的错误代码 SELECT * FROM datatable WHERE Name LIKE ? OR Code LIKE ? OR Date LIKE ? OR Inserter LIKE ? AND ID = '2' 等等 只需要一个就可以了,像这样?(其中Name LIKE?和ID='2') 如何替换或解决此问题 真正的代码 s

php sql连接中存在错误: mysqli_stmt::bind_param():变量的数量与中prepared语句中的参数数量不匹配

这是我正在使用的错误代码

SELECT * 
FROM datatable 
WHERE Name LIKE ? 
OR Code LIKE ? 
OR Date LIKE ? 
OR Inserter LIKE ? 
AND ID = '2'
等等

只需要一个就可以了,像这样?(其中Name LIKE?和ID='2')

如何替换或解决此问题

真正的代码

stmt->prepare, stmt->execute 

如果希望严格地将参数的一个副本传递到查询中(假设搜索相同的模式),可以使用

if ($stmt = $db->prepare($SearchQuery)) { 
    // Bind variables to the prepared statement as parameters 
    $stmt->bind_param("s", $param_term); 
    // Set parameters $param_term = '%' . $_POST["String"] . '%'; 
    // Attempt to execute the prepared statement 
    if ($stmt->execute()) { 
        $result = $stmt->get_result(); 

其中CHAR(x)是在字段或模式中找不到的任何字符

您有4个
参数,并且仅绑定一个值

SELECT * 
FROM datatable 
WHERE CONCAT_WS(CHAR(X), Name,Code,Date,Inserter) LIKE ? 
AND ID = '2'
这应该是

$stmt->bind_param("s", $param_term); 
这样每个参数
都会得到一个值

此外,查询还需要括号才能像这样正常工作

$stmt->bind_param("ssss", $param_term,
                        $param_term,
                        $param_term,
                        $param_term); 

注意,AND在OR之前。您可能需要
WHERE(Name LIKE?或code LIKE?或Date LIKE?或Inserter LIKE?)和ID='2'
。这只是一个查询语句,您需要添加与errorNope相关的代码块。我确实尝试过这个解决方案,但不起作用。它有相同的错误。请阅读错误消息。这意味着您没有传递正确数量的值来匹配所有的
显示您的真实代码。您是否确实传递了任何值来替换
参数您使用了4个占位符。所以你必须给出4个参数。可能是同一个参数重复了4次。@riggsfully我发现OP无法理解错误消息。但展示的技术也可以解决他的问题。。。为什么不通知OP呢?你说得很好,我最初并不认为这是一种只使用一个参数的方法:)
WHERE (Name LIKE ? 
    OR Code LIKE ? 
    OR Date LIKE ? 
    OR Inserter LIKE ? ) 
AND ID = '2'