PHP PDO kullanarak veri çekme fonksiyonu

Aşağıdaki gibi bir PHP PDO kullanarak veri çekme fonksiyonu yazabilirsiniz:

function selectData($pdo, $table, $columns, $where = [], $orderBy = [], $limit = 0, $offset = 0) {
  // SQL sorgusu oluşturma
  $columns = implode(", ", $columns);
  $where = implode(" AND ", $where);
  $orderBy = implode(", ", $orderBy);
  $limit = intval($limit);
  $offset = intval($offset);
  $sql = "SELECT $columns FROM $table";
  if ($where != "") {
    $sql .= " WHERE $where";
  }
  if ($orderBy != "") {
    $sql .= " ORDER BY $orderBy";
  }
  if ($limit > 0) {
    $sql .= " LIMIT $limit";
  }
  if ($offset > 0) {
    $sql .= " OFFSET $offset";
  }

  // Veri çekme işlemini gerçekleştirme
  $stmt = $pdo->prepare($sql);
  $stmt->execute();
  return $stmt->fetchAll();
}

Bu fonksiyonu kullanmak için, örneğin aşağıdaki gibi bir kullanım örneği verilebilir:

// Veritabanı bağlantısı oluşturma
$pdo = new PDO("mysql:host=localhost;dbname=mydb", "username", "password");

// Veri çekme işlemi
$columns = ["id", "name", "email"];
$where = ["age > 30"];
$orderBy = ["name DESC"];
$limit = 10;
$offset = 0;
$data = selectData($pdo, "users", $columns, $where, $orderBy, $limit, $offset);

// Çekilen verilerin döngüsü
foreach ($data as $row) {
  echo "ID: " . $row["id"] . "\n";
  echo "Name: " . $row["name"] . "\n";
  echo "Email: " . $row["email"] . "\n";
  echo "\n";
}

Yorum yapın