0

我有这段代码,想知道如何将它转换为 PDO 语句,一旦 mysqli_query 是旧时尚。

api.php

<?php
header("Content-Type:application/json");
if (isset($_GET['order_id']) && $_GET['order_id']!="") {
include('db.php');
$order_id = $_GET['order_id'];
$result = mysqli_query($con,"SELECT * FROM `transactions` WHERE order_id=$order_id");
if(mysqli_num_rows($result)>0){
$row = mysqli_fetch_array($result);
$amount = $row['amount'];
$response_code = $row['response_code'];
$response_desc = $row['response_desc'];
response($order_id, $amount, $response_code,$response_desc);
mysqli_close($con);
}else{
    response(NULL, NULL, 200,"No Record Found");
    }
}else{
response(NULL, NULL, 400,"Invalid Request");
}

function response($order_id,$amount,$response_code,$response_desc){
$response['order_id'] = $order_id;
$response['amount'] = $amount;
$response['response_code'] = $response_code;
$response['response_desc'] = $response_desc;

$json_response = json_encode($response);
echo $json_response;
}
?>

数据库.php

<?php

// Enter your Host, username, password, database below.
// I left password empty because i do not set password on localhost.
$con = mysqli_connect("localhost","root","","allphptricks");
if (mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    die();
    }
?>

我是 PHP 新手,不能自己做。如果您需要更多详细信息,请告诉我。有人可以帮忙吗?

4

1 回答 1

0

首先,您需要像这样获得与数据库的 PDO 连接 - 将下面前 5 行中的所有大写值替换为您的值:

    $host    = DATABASE_HOST;
    $dbase   = DATABASE_NAME;
    $user    = DATABASE_USER;
    $pass    = DATABASE_PASS;
    $charset = DATABASE_CHARSET;

    // set the connection parameters
    $dsn = "mysql:host=$host;dbname=$dbase;charset=$charset";
    $opt = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];

    // get the connection
    $this->pdb = new PDO($dsn, $user, $pass, $opt);

然后你可以使用下面的语句来读写数据库:

// WRITE STATEMENT THAT RETURNS ROW ID
$stmt = $this->pdb->prepare($sql);
$stmt->execute($fields);
$retval = $this->pdb->lastInsertId();

// READ STATEMENTS

$stmt = $this->pdb->prepare($sql);
$stmt->execute($fields);

// fetches one field
$result = $stmt->fetch(PDO::FETCH_COLUMN); 

// fetches multiple fields
$result = $stmt->fetch(PDO::FETCH_ASSOC); 

这是一个很棒的 PDO 指南的链接 https://phpdelusions.net/pdo

于 2020-09-24T16:59:24.353 回答