为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 PDO mysql 连接修复 PHP 中的“bind_param()”错误

如何使用 PDO mysql 连接修复 PHP 中的“bind_param()”错误

PHP
qq_笑_17 2021-11-19 16:42:40
如果有人可以帮助我解决正在发生的问题,我将非常感激。使用 PDO 连接的 bind_param () 会出现错误。致命错误:在第 25 行调用未定义的方法 PDOStatement::bind_param()setlocale(LC_MONETARY,"en_US");if(isset($_POST["id"])) {foreach($_POST as $key => $value){    $product[$key] = filter_var($value, FILTER_SANITIZE_STRING);}   $statement = app('db')->prepare("SELECT as_produtos.nome, as_produtos.preco FROM as_produtos WHERE id = ? LIMIT 1");$statement->bind_param('s', $product['id']);$statement->execute();$statement->bind_result($product_name, $product_price);while($statement->fetch()){     $product["product_name"] = $product_name;    $product["product_price"] = $product_price;         if(isset($_SESSION["products"])){         if(isset($_SESSION["products"][$product['id']])) {                          $_SESSION["products"][$product['id']]["product_qty"] = $_SESSION["products"][$product['id']]["product_qty"] + $_POST["product_qty"];                        } else {            $_SESSION["products"][$product['id']] = $product;        }               } else {        $_SESSION["products"][$product['id']] = $product;    }   }   $total_product = count($_SESSION["products"]);die(json_encode(array('products'=>$total_product)));}if(isset($_GET["remove_code"]) && isset($_SESSION["products"])) {$product_code  = filter_var($_GET["remove_code"], FILTER_SANITIZE_STRING);if(isset($_SESSION["products"][$product_code])) {    unset($_SESSION["products"][$product_code]);}   $total_product = count($_SESSION["products"]);die(json_encode(array('products'=>$total_product)));}if(isset($_GET["update_quantity"]) && isset($_SESSION["products"])) {   if(isset($_GET["quantity"]) && $_GET["quantity"]>0) {           $_SESSION["products"][$_GET["update_quantity"]]["product_qty"] = $_GET["quantity"]; }$total_product = count($_SESSION["products"]);die(json_encode(array('products'=>$total_product)));}
查看完整描述

2 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

我猜你是想打电话给bindParam
也没有名为 bind_result 的函数(检查:PDO 上 bind_result 的等价物是什么)。
此外,您试图绑定参数 (':s'),但是有 '?' 在您的请求字符串中。

$statement = app('db')->prepare("SELECT as_produtos.nome, as_produtos.preco FROM as_produtos WHERE id = :s LIMIT 1");  
$statement->bindParam(':s', $product['id']);

或者使用bindValue


查看完整回答
反对 回复 2021-11-19
?
绝地无双

TA贡献1946条经验 获得超4个赞

正确的代码(购物车)确定:


setlocale(LC_MONETARY,"pt_BR");


# add products in cart 

if(isset($_POST["id"])) {

foreach($_POST as $key => $value) :

$product[$key] = filter_var($value, FILTER_SANITIZE_STRING);

endforeach; 


 $statement = app('db')->prepare("SELECT as_produtos.nome, as_produtos.preco FROM 

 as_produtos WHERE id = :id LIMIT 1");

 $statement->bindParam(':id', $product['id'], PDO::PARAM_INT);

 $statement->execute();


 foreach($statement as $dados_produto) :


$product["product_name"] = $dados_produto["nome"];

$product["product_price"] = $dados_produto["preco"];


if(isset($product["product_name"])){ 


    if(isset($_SESSION["products"][$product['id']])) {              

        $_SESSION["products"][$product['id']]["product_qty"] = $_SESSION["products"][$product['id']]["product_qty"] + $_POST["product_qty"];


    } else {

        $_SESSION["products"][$product['id']] = $product;

    }   


} else {

    $_SESSION["products"][$product['id']] = $product;

}   


endforeach;


$total_product = count($_SESSION["products"]);

die(json_encode(array('products'=>$total_product)));

}


# Remove products from cart

if(isset($_GET["remove_code"]) && isset($_SESSION["products"])) {

$product_code  = filter_var($_GET["remove_code"], FILTER_SANITIZE_STRING);

if(isset($_SESSION["products"][$product_code])) {

unset($_SESSION["products"][$product_code]);

}   

$total_product = count($_SESSION["products"]);

die(json_encode(array('products'=>$total_product)));

}


# Update cart product quantity

if(isset($_GET["update_quantity"]) && isset($_SESSION["products"])) {   

if(isset($_GET["quantity"]) && $_GET["quantity"]>0) {       

$_SESSION["products"][$_GET["update_quantity"]]["product_qty"] = 

$_GET["quantity"];  

}

$total_product = count($_SESSION["products"]);

die(json_encode(array('products'=>$total_product)));

}   


查看完整回答
反对 回复 2021-11-19
  • 2 回答
  • 0 关注
  • 172 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信