PHP SQL STMT SELECT 多个 LIKE ?是否可以? [英] PHP SQL STMT SELECT multiple LIKE ? is it possible?
问题描述
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屋!