PHP SQL STMT SELECT 多个 LIKE ?是否可以? [英] PHP SQL STMT SELECT multiple LIKE ? is it possible?

查看:28
本文介绍了PHP SQL STMT SELECT 多个 LIKE ?是否可以?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

SELECT *从数据表WHERE 名字喜欢?或代码喜欢?或日期喜欢?或插入器喜欢?AND ID = '2'

<块引用>

php sql 连接有错误:mysqli_stmt::bind_param():变量数与准备语句中的参数数不匹配

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

stmt->准备,stmt->执行

等等.

这仅适用于一个 LIKE ?(WHERE Name LIKE ? AND ID = '2').

我该如何更换或解决这个问题?

真正的代码

if ($stmt = $db->prepare($SearchQuery)) {//将变量绑定到准备好的语句作为参数$stmt->bind_param("s", $param_term);//设置参数 $param_term = '%' .$_POST["String"] .'%';//尝试执行准备好的语句如果 ($stmt->execute()) {$result = $stmt->get_result();

解决方案

你有 4 个 ? 参数并且你只绑定了一个值

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

这应该是

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

这样每个参数 ? 都会得到一个值.

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

WHERE(名称 LIKE ?或代码喜欢?或日期喜欢?或插入器喜欢?)AND ID = '2'

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

There is an error in php sql connection: mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement in

Here is the error code, I am using

stmt->prepare, stmt->execute 

and so on in php.

This works fine with just one LIKE ? (WHERE Name LIKE ? AND ID = '2').

How can I replace or solve this problem?

The real code

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(); 

解决方案

You have 4 ? parameters and you are binding only one value

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

This should be

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

so that each parameter ? gets a value.

Also the query will need bracket to work correctly like this

WHERE (Name LIKE ? 
    OR Code LIKE ? 
    OR Date LIKE ? 
    OR Inserter LIKE ? ) 
AND ID = '2'

这篇关于PHP SQL STMT SELECT 多个 LIKE ?是否可以?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆