Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng MySQLi từ một lớp khác trong PHP

Có một số phương pháp không tốt đã dẫn bạn đến lỗi này.

Rõ ràng, việc mở rộng Người dùng khỏi Cơ sở dữ liệu là một động thái sai lầm. Ngoài ra, toàn bộ lớp Cơ sở dữ liệu khá vô dụng vì nó không có ích gì.

Do đó tôi muốn đề xuất

  • loại bỏ lớp Cơ sở dữ liệu vô dụng.
  • tạo một đơn Phiên bản $ db từ mysqli vani.
  • chuyển nó dưới dạng tham số khởi tạo vào mọi lớp cần kết nối cơ sở dữ liệu

database.php:

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli("localhost", "DBUserName", "UserPassword", "SelectedDB");
$db->set_charset('utf8mb4');

myapi.php

<?php
class MyAPI
{
    protected $db;

    public function __construct($db, $request_uri, $postData, $origin)
    {
        $this->db = $db;
    }

    public function getUser($id)
    {
        $sql = "SELECT * FROM users where id=?";
        $stmt = $this->db->prepate($sql);
        $stmt->bind_param("s", $id);
        $stmt->execute();
        $result = $stmt->get_result();
        return $result->fetch_assoc();
    }
}

app.php

<?php
# require_once 'Database.php';
# require_once 'myapi.php';
require 'vendor/autoload.php'; // autoloading is a must

$api = new MyAPI($db, $request_uri, $postData, $origin);
$user = $api->getUser($_POST['id']);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo phương thức vận chuyển tùy chỉnh trong OpenCart:Phần thứ hai

  2. PDO ::__ construct ():Máy chủ đã gửi bộ ký tự (255) không xác định cho máy khách. Vui lòng báo cáo cho các nhà phát triển

  3. Ví dụ về TIME () - MySQL

  4. Sự cố với các loại nội dung khi tải một vật cố định trong Django

  5. MySQL WHERE TRONG ()