Bu bölümde PHP ile veritabanları arasındaki ilişkiye yönelik sıkça sorulan sorulara yer verilmiştir. Evet, PHP, günümüzde kullanılabilen her veritabanına sanal olarak erişebilmektedir.
Unix makinelerde PDO_ODBC veya Unified ODBC API. kullanabilirsiniz.
Windows makinelerde, ayrıca PDO_SQLSRV veya SQLSRV de kullanabilirsiniz.
Ayrıca bir sonraki sorunun cevabına da bakınız.
Evet. Tamamen Windows 9x/Me, veya NT/2000 üzerindeyseniz zaten gerekli bütün araçlara sahipsinizdir; ODBC ve Microsoft'un ODBC sürücülerini Microsoft Access veritabanları için kullanabilirsiniz.
Bir Unix üzerindeyseniz ve bir Windows makinedeki bir Microsoft Access veritabanına erişmek istiyorsanız Unix ODBC sürücüleri kullanmanız gerekir. » OpenLink Software, bunu yapabilen Unix temelli ODBC sürücülerine sahiptir.
Diğer bir seçenek, Windows ODBC sürücülerine sahip bir SQL sunucusu kullanmaktır. Böylece Microsoft Access (ODBC kullanarak) ve PHP'ye (yerleşik sürücüleri kullanarak) erişebilirsiniz. Başka bir seçenek ise, Microsoft Access ve PHP'nin her ikisinin de anlayabileceği düz dosyalar veya dBase veritabanları gibi bir aracı dosya biçimlerini kullanmaktır. Bu noktada OpenLink yazılımdan Tim Hayes'in yazdıklarını okuyalım:
Veritabanınıza PHP'den ODBC'yle (yani, OpenLink'in sürücüleriyle) doğrudan erişmek varken aracı dosya olarak başka bir veritabanını kullanmak hiç iyi bir fikir değildir. Mutlaka bir aracı dosya kullanmanız gerekmiyorsa, OpenLink'in NT, Linux ve diğer Unix platformları için dağıttığı Virtuoso'yu (sanal veritabanı motoru) kullanabilirsiniz. Yazılımı özgürce indirmek için » OpenLink'i ziyaret ediniz.
Başarısı kanıtlanmış tek seçenek Windows üzerinde MySQL ile MyODBC sürücülerini kullanmak ve veritabanlarını eşzamanlamaktır. Steve Lawrence şunları yazmıştır:
İpuçları:
Bir MySQL API'si seçmek bölümünde açıklandığı gibi üç MySQL eklentisi vardır. Eski API kullanılmamalıdır, PHP 5.5.0 itibariyle kullanımı önerilmemekte olup PHP 7.0.0 itibariyle PECL'ye taşınmıştır. Yeni kodların mutlaka mysqli veya PDO_MySQL ile yazılmasını teşvik ediyoruz.
Göç betikleri henüz hazır değilse de mysqli API hem yordamsal hem de nesne yönelimli API içermekte olup yordamsal sürümü ext/mysql'e benzemektedir.
Eklentileri karışık kullanmak mümkün değildir. Bu bakımdan, örneğin, bir mysqli bağlantısını PDO_MySQL veya ext/mysql'e aktarmak işe yaramayacaktır.
0 değerli bir sonuç belirtecini kullanmaya çalışıyorsunuzdur. Buradaki sıfır, sorgunuzun bir şekilde başarısız olduğu anlamına gelir. Dönen sonuç belirtecini kullanmaya çalışmadan önce, sorguyu gönderdikten sonra oluşan hataları incelemeniz gerekir. Bunun gerektiği gibi yapıldığı bir kod şöyle olurdu:
<?php
$result = mysql_query("SELECT * FROM tables_priv");
if (!$result) {
echo mysql_error();
exit;
}
?>
<?php
$result = mysql_query("SELECT * FROM tables_priv")
or die("Kötü sorgu: " . mysql_error());
?>