بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

توضیح فایل db.php

129513  2 ماه پیش  2 ماه پیش
0 0

سلام میشه دقیقا یکنفر توضیح بده کدهای درون هر فانکشن دقیقا چه چیزی رو دارن انجام میدم. آقای آقاجانی خیلی سر سری این قسمت رو خودشون نوشتن و توضیح سر سری دادن و رفتن. ممنون میشم راهنمایی کنید تا بقیه دوستان هم بهره ببرن. تشکر

 
 
<?php
class Db
{
  private $connection;
  private static $db;

  public static function getInstance()
  {
    if (self::$db == null) {
      self::$db = new Db();
    }

    return self::$db;
  }

  public function __construct($option = null)
  {

    if ($option != null) {
      $servername = $option['servername'];
      $username = $option['username'];
      $password = $option['password'];
      $dbname = $option['dbname'];
    } else {
      global $config;
      $servername = $config['db']['servername'];
      $username = $config['db']['username'];
      $password = $config['db']['password'];
      $dbname = $config['db']['dbname'];
    }

    $this->connection = new mysqli($servername, $username, $password, $dbname);
    if ($this->connection->connect_errno) {
      echo "Connection failed: " . $this->connection->connect_error;
      exit;
    }

    $this->connection->query("SET NAMES 'utf8'");
  }

  public function first($sql)
  {
    $records = $this->query($sql);
    if ($records == null) {
      return null;
    }

    return $records[0];
  }
  public function modify($sql)
  {
    $rowsAffected = $this->connection->query($sql);
    return $rowsAffected;
  }

  public function insert($sql)
  {
    $id = $this->connection->query($sql);
    return $id;
  }

  public function query($sql)
  {
    $result = $this->connection->query($sql);
    $records = array();

    if ($result->num_rows == 0) {
      return null;
    }


    while ($row = $result->fetch_assoc()) {
      $records[] = $row;
    }

    return $records;
  }

  public function connection()
  {
    return $this->connection;
  }

  public function close()
  {
    $this->connection->close();
  }
}
 


0 0
استاد که انصافاً خوب توضیح دادن. چند بار گوش بدید و عجله هم نکنید. وقتی میگن کلیشه ای این قسمت رو ببیند و گوش کنید، زیاد وسواس نداشته باش و ادامه آموزش ها رو برو در آینده حتما این مفاهیم واست جا میفته. منم اینجور بودم برای مثال متد استاتیک getInstance رو برای این نوشتن که اگه یک کانکشن به دیتابییس ایجاد شده بود دوباره اون رو ایجاد نکنه. که خودشون میگن این روش مربوط به دیزاین پترن singlrtoneه. یا مثلا متد insert یه رشته Sql میگیره و اون رو به متد query دیتابیس پاس میده و خروجی رو توسط متغییر id برمیگردونهو اون ور این id رو که یک آرایه است نشون میده با دستور foreach (2 ماه پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .