【问题标题】:Mysqli equivalent to PDO [duplicate]Mysqli相当于PDO [重复]
【发布时间】:2020-02-19 05:02:06
【问题描述】:

我正在尝试将 mysqli 转换为 PDO:

$product_id = $_GET['p'];
$product_query = "SELECT * FROM products,categories WHERE product_cat=cat_id AND product_id BETWEEN $product_id AND $product_id+3";
$run_query = mysqli_query($con,$product_query);
      if(mysqli_num_rows($run_query) > 0){
            while($row = mysqli_fetch_array($run_query)){
                        $pro_id    = $row['product_id'];
                        $pro_cat   = $row['product_cat'];
                        $pro_brand = $row['product_brand'];
                        $pro_title = $row['product_title'];
                        $pro_price = $row['product_price'];
                        $pro_image = $row['product_image'];
                        $cat_name = $row["cat_title"];

我的尝试没有奏效,我的问题是我不确定 mysqli_num_rows 与 PDO 的等效项是什么: 输出应该得到一个类似类别列表之间的产品,以显示为电子商务网站的相关产品

$query = $connect->prepare("SELECT * FROM product WHERE prd_cat = cat_id AND prd_id BETWEEN :product_id AND :product_id+3");
$query->execute(['product_id' => $_GET['p']]);
        while ($row = $query->fetchAll()){
                        $pro_id    = $row['prd_id'];
                        $pro_cat   = $row['prd_cat'];
                        $pro_brand = $row['prd_brand'];
                        $pro_title = $row['prd_name'];
                        $pro_price = $row['prd_price'];
                        $pro_image = $row['prd_image'];

                        $cat_name = $row["cat_title"];

                        echo "

如果有人可以提供帮助,我仍然在尝试学习 php 和 mysql,但我读过 PDO 对数据库的功能比 mysqli 更好。

【问题讨论】:

  • PDO 更好,IMO。在select 上,mysqlPDO 没有行数。您可以在 PHP 中进行计数或运行两个查询,一个使用count(*)。此外,如果多次使用同一个占位符,则需要进行仿真。

标签: php mysqli pdo


【解决方案1】:
$query = $connect->prepare("SELECT * FROM product WHERE prd_cat = cat_id AND prd_id BETWEEN :product_id1 AND :product_id2");
$query->execute(['product_id1' => $_GET['p'], 'product_id2' => ($_GET['p'] + 3)]);
if($query->rowCount() > 0)
{
    $data = $query->fetchAll(\PDO::FETCH_ASSOC);
    foreach($data as $row)
    {
        $pro_id    = $row['prd_id'];
        $pro_cat   = $row['prd_cat'];
        $pro_brand = $row['prd_brand'];
        $pro_title = $row['prd_name'];
        $pro_price = $row['prd_price'];
        $pro_image = $row['prd_image'];

        $cat_name = $row["cat_title"];
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-17
    • 2019-10-09
    • 2011-01-06
    • 2017-07-02
    • 2020-01-29
    • 1970-01-01
    相关资源
    最近更新 更多