function ekle($a,$b,$c){
mysql_select_db("deneme",mysql_connect("localhost","root"));
return $ekle = mysql_query("insert into {$a} ({$b}) values ({$c})");
}bunu PDO'ya çevirmeyi çok denedim ama başaramadım. Nasıl yapabilirim ?
PDO ile ekle() Fonksiyonu Yapmak
7
●1.109
- 30-03-2014, 15:43:54arkadaşlar mysql_li kullanırken ekle() fonksiyonumu şu şekilde yazıyordum ve gayette güzel çalışıyordu.
- 30-03-2014, 15:58:05Üyeliği durdurulduŞöyle deneyin.
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'kullanıcıadı', 'parola'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $db->exec("INSERT INTO `tablo_adi` (`column1`, `column2`, ...) VALUES ('value1', 'value2', ...)"); - 30-03-2014, 16:13:55Kimlik doğrulama veya yönetimden onay bekliyor.OOP'a başlamayı düşünüyorum bende,OOP'un kolaylığı ve farkı nedir?mka688 adlı üyeden alıntı: mesajı görüntüle
- 30-03-2014, 16:37:02Üyeliği durdurulduhttp://de3.php.net/pdo.prepared-statements
Şu fonk. işinizi görür sanırım
$stmt = $db->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)"); $stmt->bindParam(':name', $name); $stmt->bindParam(':value', $value); // insert one row $name = 'one'; $value = 1; $stmt->execute(); // insert another row with different values $name = 'two'; $value = 2; $stmt->execute(); - 30-03-2014, 16:49:57
/** * ekle veritabanına veri ekleme metodu * @param string $tablo verinin ekleneceği tablo adı * @param array $veri eklenecek veriler ve keyleri. örn: array("baslik" => "başlık", "icerik" => "veri içeriği"); * @param integer $son_id eklenen verinin id'si isteniyorsa 1 yazılmalı. * @return integer $son_id 1 olarak gelmişse, eklenen verinin id değerini geri döndürüyoruz. */ public function ekle($tablo, $veri = array(), $son_id = null){ //tablo ve veri gelmemişse false döndürüyoruz if(empty($tablo) or empty($veri)){ return false; } //tablo isimlerini birleştiriyoruz $tablolar = implode(", ", array_keys($veri)); //veri keylerini birleştiriyoruz $veriler = ":" .implode(", :", array_keys($veri)); //sorguyu hazırlıyoruz $sorgu = $this->prepare("INSERT INTO $tablo ($tablolar) VALUES ($veriler)"); //verileri ve keyleri bing'lere atıyoruz foreach($veri as $ad => $bilgi){ $sorgu->bindValue(":$ad", $bilgi); } //sorguyu çalıştırıyoruz $sorgu->execute(); //eklenen verinin id değeri istenmişse, geri döndürüyoruz if($son_id == 1){ return $this->lastInsertId(); } } - 30-03-2014, 17:15:10Kimlik doğrulama veya yönetimden onay bekliyor.Misafir; şöyle de bi' uyarlama yapabiliriz;
<?php define("DB_HOST", "127.0.0.1"); define("DB_PORT", "3306"); define("DB_NAME", "test"); define("DB_USER", "root"); define("DB_PASS", "root"); function insert(PDO $instance, $table, array $columns, array $parameters) { if(empty($columns) || empty($parameters)) { return false; } if(count($columns) != count($parameters)) { return false; } $instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $query_string = "INSERT INTO `{$table}` SET "; foreach($columns as $index => $column) { $query_string .= "`{$column}` = :{$column}, "; } $query_string = trim(trim($query_string), ","); $statement = $instance->prepare($query_string); foreach($columns as $index => $column) { $parameter = $parameters[$index]; $parameter_type = gettype($parameter); switch(strtolower($parameter_type)) { case "null": { $statement->bindParam(":{$column}", $parameter, PDO::PARAM_NULL); } break; case "integer": { $statement->bindParam(":{$column}", $parameter, PDO::PARAM_STR); } break; case "string": { $statement->bindParam(":{$column}", $parameter, PDO::PARAM_STR); } break; default: { $statement->bindParam(":{$column}", $parameter); } } } try { $response = $statement->execute(); return $response; } catch(PDOException $e) { return $e->getMessage(); } } try { $instance = new PDO(sprintf("mysql:host=%s;port=%s;dbname=%s", DB_HOST, DB_PORT, DB_NAME), DB_USER, DB_PASS); $response = insert($instance, "events", array("ID", "name"), array(null, "PDO")); echo $instance->lastInsertId(); } catch(PDOException $e) { exit($e->getMessage()); }
OOP'a geçir insert sorgusu yaz böyle makarna takılma sonra daha çok uğraşacaksın