Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  analiz edilip çalışma planı* çıkarılan, performansa yönelik derlenmiş sql ifadesi*, hazırlanmış ifade.
hey
20 Haziran 2005 18:40
2.  Java'da PreparedStatement sınıfını kullanarak gerçekleştirebileceğiniz yapı.
Bu yapıyı kullanarak, sql injection olaylarından da kendinizi korumuş olursunuz. (ya da korumaya çalışmış...)
sertw
25 Kasım 2005 22:49
3.  Performans artırıcı etkileri vardır.Geçenlerde bir arkadaşım test etmişti.
2000 kayıt insert işlemi için
   Prepared Statement olmaksızın 1984 ms
   Prepared Statement ile        1594 ms

Ayrıca Bkz bind
mennan
02 Aralık 2005 00:30
4.  MySQL'in 4.1 sürümünden bu yana desteklediği ifadeler.

MySQL dökümanlarında verilen örnek:
mysql> SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
mysql> PREPARE stmt2 FROM @s;
mysql> SET @a = 6;
mysql> SET @b = 8;
mysql> EXECUTE stmt2 USING @a, @b;
+------------+
| hypotenuse |
+------------+
|         10 |
+------------+
mysql> DEALLOCATE PREPARE stmt2;


Bu özelliği 5 sürümünden itibaren PHP'de bulunan MySQLi eklentisiyle rahatça kullanabilirsiniz.

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* check connection */
if (mysqli_connect_errno()) {
   printf("Connect failed: %s\n", mysqli_connect_error());
   exit();
}

$city = "Amersfoort";

/* create a prepared statement */
if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {

   /* bind parameters for markers */
   $stmt->bind_param("s", $city);

   /* execute query */
   $stmt->execute();

   /* bind result variables */
   $stmt->bind_result($district);

   /* fetch value */
   $stmt->fetch();

   printf("%s is in district %s\n", $city, $district);

   /* close statement */
   $stmt->close();
}

/* close connection */
$mysqli->close();
?>


Hazırlanmış ifadeler kullanmak hem yazdığınız SQL ifadesini daha rahat anlamanıza hem de güvenliği* daha kolay sağlamanıza yarayacaktır.

Hazır ifade kullanamadığınız ortamlarda sprintf size bu tada yakın bir SQL hazırlama imkanı verecektir. Örnek bir PHP kodu:

$query = sprintf("SELECT District FROM City WHERE Name='%s' LIMIT %d",
                 mysql_real_escape_string($cityname),
                 intval($selectlimit)
         );

erdemkose
02 Aralık 2005 17:44
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.
© 2005, Bilişim Kulübü. (1109 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen