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";
}