Professional Documents
Culture Documents
mysql_connect("localhost","root","") ;
mysql_select_db("baslangicdb") ;
$ad = mysql_result($isimler,$i,"ad");
$soyad = mysql_result($isimler,$i,"soyad");
Veritabanından dönen tablodaki ilk satırın satır numarası 0'dır. Her sonucun
bir satır olduğu bu tabloda tablo alanının ismiyle satır numarası verilerek
sonuçlar çağırılabilir. Öğrenci numarası, adı ve soyadının bulunduğu
öğrenciler isimli tabloya yapılacak olan genel sorguda, geriye dönen sonuç
tablosunun her satırında bir öğrenci numarası, ad ve soyad bulunacaktır.
Sonuç tablosundaki satır sayısını öğrenmek için mysql_numrows() komutu
kullanılır.
$sayi = mysql_numrows($isimler);
$kullaniciid = mysql_insert_id();
<?
if ($gonderim)
{ echo ("Merhaba... Adınız : $ad, soyadınız da :$soyad");
}
else
{ ?>
<form action="form.php" method="post">
Ad :<input type="text" name="ad" size="6" maxlength="16">
Soyad :<input type="text" name="soyad" size="6" maxlength="16">
<input type="submit" name="gonderim" value="Gönder"> </form>
<? } ?>
<?
if ($gonderim)
{
echo ("Merhaba... Adınız : $ad, soyadınız da :$soyad Cinsiyet : $cinsiyet, E-
posta : $eposta") ;
} else
{
?>
<form action="form.php" method="post">
Ad :<input type="text" name="ad" size="16" maxlength="16"><br>
Soyad :<input type="text" name="soyad"size="16" maxlength="16"><br>
E-posta :<input type="text" name="eposta" size="50" maxlength="50">
<br> Cinsiyet :e<input type="radio" name="cinsiyet" value="e">
k<input type="radio" name="cinsiyet" value="k">
<br><br>
<input type="submit" name="gonderim" value="Gönder"> </form>
<?
}
?>
Yukarıdaki basit bilgi formundaki bilgiyi MySQL'e kayıt etmek için tek
yapılması gereken mysql_query() komutu içeren bir satır eklemek olacaktır.
Bunun için echo komutunun altındaki satıra MySQL veritabanı sunucusuna
bağlantı için gereken komutlar ve sorgu cümleciklerinin eklenmesi yeterlidir.
mysql_connect("localhost","root","şifre") ;
mysql_select_db("baslangicdb");
mysql_query("insert into kullanicilar, (kullaniciid, ad, soyad, eposta,
cinsiyet) values (null,'$ad', '$soyad', '$eposta', '$cinsiyet')") ;
if (mysql_error())
{
echo ("MySQL hatası oluştu. Hata: ") ;
echo mysql_error() ;
}
<?
if ($gonderim) {
@mysql_connect("localhost","root","şifre") or die("MySQL'e ulaşamadım...");
@mysql_select_db("baslangicdb") or die("Veritabanına ulaşamadım...");
echo ("Merhaba... Adınız : $ad, soyadınız da : $soyad Cinsiyet : $cinsiyet, E-
posta : $eposta") ;
mysql_query("insert into kullanicilar (kullaniciid, ad, soyad, eposta, cinsiyet)
values (null,'$ad', '$soyad', '$eposta', '$cinsiyet')") ;
if (mysql_error()) { echo ("MySQL hatası oluştu. Hata: ");
echo mysql_error();
}
}
else
{
?>
<form action="form.php" method="post">
Ad:<input type="text" name="ad" size="16" maxlength="16"><br>
Soyad:<input type="text" name="soyad" size="16" maxlength="16"><br>
E-posta:<input type="text" name="eposta" size="16"maxlength="16">
<br>
Cinsiyet :e<input type="radio" name="cinsiyet" value="e">
k<input type="radio" name="cinsiyet" value="k">
<br><br>
<input type="submit" name="gonderim" value="Gönder">
</form>
<?
}
?>
include("kitaportakkoy.php");
satırıyla dahil edilir, include komutu giderek kalabalıklaşan Web yazılımı
projelerinde PHP kodlarının kolay ve anlamlı parçalar halinde
yönetilebilmesinde oldukça önemli rol oynar. Basit forma biraz daha etkileşim
katmak için formu dolduran kullanıcıya, MySQL tarafından veri girişi
esnasında ona atanan otomatik sıra numarasını da yazabilmek mümkündür.
Bunun için koda
$kullaniciid = mysql_insert_id();
echo ("<br>Sizin veritabanındaki sıra numaranız :$kullaniciid") ;
<?
if ($gonderim)
{
include ("kitaportakkoy.php") ;
echo ("Merhaba... Adınız : $ad, soyadınız da :$soyad Cinsiyet : $cinsiyet, E-
posta : $eposta");
mysql_query("insert into kullanicilar (kullaniciid, ad, soyad, eposta, cinsiyet)
values (null,'$ad', '$soyad', '$eposta', '$cinsiyet')") ;
if (mysql_error())
{
echo ("MySQL hatası oluştu. Hata: ");
echo mysql_error() ;
}
$kullaniciid = mysql_insert_id() ;
echo ("<br>Sizin veritabanındaki sıra numaranız : $kullaniciid") ;
}
else
{
?>
<form action="form.php" method="post">
Ad:<input type="text" name="ad" size="16" maxlength="16"><br>
Soyad:<input type="text" name="soyad" size="16" maxlength="16"><br>
E-posta :<input type="text" name="eposta" size="16" maxlength="16">
<br>
Cinsiyet :e<input type="radio" name="cinsiyet" value="e">
k<input type="radio" name="cinsiyet" value="k">
<br><br>
<input type="submit" name="gonderim" value="Gönder"> </form>
<?
}
?>
haline getirilir. Veritabanı bağlantılarında bir sorun olması durumunda hata
mesajının değiştirilmesi için die komutu kullanılabilir. Daha profesyonel bir
görünüm için hata mesajını include() komutu yardımıyla bir dosyaya da
yönlendirebilmek mümkün. MySQL'e bağlantı komutları PHP'de aslında birer
değişkenle de eşleştirilebilir. Bağlantı kurulup kurulmadığını anlamak için, bu
değişkenlerin aldıkları değerlerin denetlenmesiyle hata mesajı ya da farklı
tepkiler üretebilmek mümkündür.
<?
$sunucu = @mysql_connect("localhost","root","sifre");
$veritabani = @mysql_select_db("baslangicdb");
if (($sunucu < 1) or ($veritabani < 1))
{
include ("sunucuhatasikoy.php") ;
exit;
}
?>
$tumsatir = mysql_fetch_row($isimler) ;
<?
include("kitaportakkoy.php") ;
$isimler = mysql_query("select * from kullanicilar order by ad limit O, 10");
if (mysql_error())
{
echo ("MySQL hatası oluştu. Hata: ");
echo mysql_error();
}
while($tumsatir = mysql_fetch_row($isimler)) :
echo ("Ad : $tumsatir[l] Soyad :
$tumsatir[2]<br>\n") ;
endwhile;
?>
Az önce bilgi dökmek için kullanılan PHP komutları yerine yukarıdaki komutlar
hem daha az yer kaplar hem de daha hızlı çalışırlar. Normalde PHP
dosyasının geliştirme süreci bittikten sonra içerdiği
if (mysql_error())
{
echo ("MySQL hatası oluştu. Hata: ");
echo mysql_error();
}
<?
include ("kitaportakkoy.php") ;
$isimler = mysql_query("select * from kullanicilar order by ad limit $k, 10");
if (mysql_error())
{
echo ("MySQL hatası oluştu. Hata: ");
echo mysql_error() ;
}
while($tumsatir = mysql_fetch_row($isimler)) :
echo ("Ad : $tumsatir[l] Soyad : $tumsatir[2]<br>\n") ;
endwhile;
$k = $k + 10;
echo ("<a href=\"listele2.php?k=$k\">Sonraki 10 kayıt</a>") ;
?>
şeklindedir. SQL'de limit kalıbında iki tane sayı değerinin virgülle ayrılarak
verilmesi gerektiğinden, bu SQL sorgusu geçersizdir. PHP dosyası, eğer $k
değişkenine bir değer atanarak çalıştırılırsa SQL sorgusu doğru olacaktır.
Bunu denemek için tarayıcıya
http://localhost/listele2.php?k=0
if (!$k) $k = 0;
<?
include ("kitaportakkoy.php");
if (!$k) ($k = 0;}
$isimler = mysql_query("select * from kullanicilar order by ad limit $k, 10");
if (mysql error())
{
echo ("MySQL hatası oluştu. Hata; ");
echo mysql_error() ;
}
while($tumsatir = mysql_fetch row($isimler)) :
echo ("Ad : $tumsatir[1] Soyad :$tumsatir[2]<br>\n") ;
endwhile;
$k = $k + 10;
echo ("<a href=\"listele2.php?k=$k\">Sonraki 10 kayıt</a>");
?>
mysql_connect("localhost","root","sifre");
satırı yerine
mysql_pconnect("localhost","root","sifre");
phpinfo() ;
mysql_close
Belirtilen MySQL bağlantısını kapatır.
mysql_connect
Sunucuya veritabanı bağlantısı açar.
mysql_create_db
MySQL'de veritabanı açar.
mysql_data_seek
Sonuç satırında belirtilen sıraya geçer.
mysql_db_query
MySQL'e sorgu gönderir.
mysql_drop_db
Veritabanın sunucudan siler.
mysql_errno
Bir önceki işlemdeki MySQL hata numarasını verir.
mysql_error
Bir önceki işlemdeki MySQL hata mesajını verir.
mysql_fetch_array
Sonuçları dizi değişkeni olarak alır.
mysql_fetch_field
Sonuç tablosundaki alan adım nesne olarak alır.
mysql_fetch_lengths
Sonuç tablosundaki dizi değişkenin uzunluğunu alır.
mysql_fetch_object
Sonuç satırım nesne olarak alır.
mysql_fetch_row
Sonuç tablosundan dizi değişkeni alır.
mysql_field_name
Sonuç tablosundaki sonucun tablodaki alan adım verir.
mysql_field_seek
Sonuç tablosunda sıra indeksini belirtilen yere götürür.
mysql_field_table
Alan adı verilen sonucun tablo adını verir.
mysql_field_type
Sonuçtaki alanın hangi tip olduğunu belirtir.
mysql_field_flags
Sonuçtaki alanın hangi tür ekstra parametrelerle tanımlandığım belirtir.
mysql_field_len
Sonuçtaki alanın veritabanındaki uzunluğunu verir.
mysql_free_result
Sonuçlar için atanan hafızayı boşaltır.
mysql_insert_id
Bir önceki veri yerleştirmede oluşan otomatik veri değerini verir.
mysql_list_fields
Sonuçtaki tüm tablo alanlarım listeler.
mysql_list_dbs
Sunucudaki tüm veritabanlarını listeler.
mysql_list_tables
Veritabanındaki tüm tabloları listeler.
mysql_num_fields
Sonuçtaki alan sayısını verir.
mysql_num_rows
Sonuçtaki satır sayısını verir.
mysql_pconnect
Sunucuya kalıcı bir bağlantı tanımlar.
mysql_query
Veritabanına sorgu gönderir.
mysql_result
Sorgudan dönen sonuçları alır.
mysql_select_db
Sunucudan veritabanı seçer.
mysql_tablename
Verilen alanın ait olduğu tablonun adını verir.