mysqli_stmt::bind_param(): количество переменных не соответствует количеству параметров в подготовленном выражении в mysql php
Я использую подготовленное заявление и выполняю
$search = trim($_GET['s']);
if($stmtgetproducts = $mysqli->prepare("SELECT s.store_id, product_id, product_name, product_desc, product_price, product_discount, product_views, product_date, product_code, product_category, product_image1, product_image2, sale_id,s.store_name,s.store_username
FROM store_products sp
INNER JOIN store_product_categories spc ON sp.product_category=spc.id
INNER JOIN store s ON sp.store_id=s.store_id WHERE MATCH(product_name, product_desc) AGAINST('?' IN BOOLEAN MODE);")){
$stmtgetproducts->bind_param("s",$search);
$stmtgetproducts->execute();
$getproducts=$stmtgetproducts->get_result();
$stmtgetproducts->close();
}
else
{
echo $mysqli->error;
}
Так как, я даю ему только один параметр, чтобы принять в качестве аргумента, а параметр связывания - только один, который является $search, это дает мне эту ошибку
mysqli_stmt::bind_param(): Number of variables doesn't match number of parameters in prepared statement
это если форма
<form action="" method="GET">
Search Product: <input type="text" name="s" placeholder="Enter product name">
</form>
если я изменю это
$stmtgetproducts->bind_param("ss",$search);
тогда эта ошибка приходит
mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables
1 ответ
$stmtgetproducts = $mysqli->prepare("SELECT s.store_id, product_id, product_name, product_desc, product_price, product_discount, product_views, product_date, product_code, product_category, product_image1, product_image2, sale_id,s.store_name,s.store_username
FROM store_products sp
INNER JOIN store_product_categories spc ON sp.product_category=spc.id
INNER JOIN store s ON sp.store_id=s.store_id WHERE MATCH(product_name, product_desc) AGAINST(? IN BOOLEAN MODE);"))
изменил мое подготовленное заявление к этому