DonanımHaber Mini sürüm 2 Ocak 2026 tarihi itibariyle kullanımdan kalkacaktır. Bunun yerine daha hızlı bir deneyim için DH Android veya DH iOS uygulamalarını kullanabilirsiniz.
Arama butonu
Bu konudaki kullanıcılar: 1 misafir
8
Cevap
1480
Tıklama
0
Öne Çıkarma
PhpMyAdmin Hakkında Acil Yardım!
H
10 yıl (139 mesaj)
Teğmen
Konu Sahibi

Arkadaşlar aşağıdaki dosyayı aynen yazdım:

<?php 

$host = 'localhost';
$username = 'root';
$password = '';
$db = 'uyelik';

$baglan = mysql_connect( $host, $username, $password )or die( mysql_error() );
mysql_select_db( $db, $baglan );

mysql_querry( "SET CHACTER SET 'utf8' " );
mysql_querry( "SET NAMES 'utf8' " );

?>


Sonra bunu db.php diye kaydedip "www klasörüne" attım. Bir tane daha index.php diye dosya açtım. Ona da şunları yazdım:

<?php require('db.php'); ?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>Document</title>
</head>
<body>

</body>
</html>


Deneme amaçlı boş bir bağlantım kuruldu mu diye bakayım dedim. Şu hataları aldım:

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\wamp\www\uyelik\db.php on line 8

Fatal error: Call to undefined function mysql_querry() in C:\wamp\www\uyelik\db.php on line 11


Hemen sonra internetten hazır veritabanı bağlantı dosyaları yükledim. Fakat hiçbir şekilde veritabanına ulaşamıyorum. Bunun nedeni ne olabilir?

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



G
10 yıl (1089 mesaj)
Yüzbaşı

Sunucuda yada bilgisayarına kurduğun php'nin versiyonu mysql'i desteklemiyordur.Mysql_connect eskidi artık, mysqi diye birşey var araştır onu kullan.


Bu mesaja 1 cevap geldi.
/
10 yıl (16 mesaj)
Er

yazım hatası yapmışsın. 'mysql_querry' yerine 'mysql_query' olmalı.
ayrıca mysql yerine mysqli'ye geçmen doğru olacaktır. yani mysqli_query ile bağlanırsan 'Deprecated' uyarısınıda almazsın. tabii mysqli için, diğer mysql komutlarınıda mysqli'ye çevirmen gerekecek.
ayrıca query'nin içinde de yazım hatası var. 'SET CHARACTER SET utf8' olarak düzeltmelisin.


Bu mesaja 1 cevap geldi.
H
10 yıl (139 mesaj)
Teğmen
Konu Sahibi

Kardeşim dediğin düzenlemeleri yaptım ve bu sefer aldığım hata şu ikisi:

( ! ) Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\wamp\www\uyelik\db.php on line 9

( ! ) Warning: mysqli_query() expects at least 2 parameters, 1 given in C:\wamp\www\uyelik\db.php on line 11


Günlerdir uğraşıyorum. Bütün php forumlarını vb. blogları gezdim. Çözemedim bir türlü. Ama bunu videoda adam yapıyor ve direk veritabanına erişiyor. Bende neden olmadı? :S


Bu mesaja 1 cevap geldi.
/
10 yıl (16 mesaj)
Er

mysql_select_db ile mysqli_select_db'nin aldığı parametreler birbirinden farklı. aynı durum mysqli_query içinde geçerli.
yani sadece "i" ekleyerekten, mysqli'ye geçemezsin. aldığı parametrelere uygun değişiklikte yapılmalı. aldığın hatalar bu yüzden.

mysqli_connect'de, bağlanmak istediğin veritabanını belirtebiliyorsun. o yüzden mysqli_select_db'ye, özel bir durum olmadıkca gerek yok.

şöyle değiştir kodu:
<?php 

$host = 'localhost';
$username = 'root';
$password = '';
$db = 'uyelik';

$baglan = mysqli_connect( $host, $username, $password, $db ) or die( mysqli_connect_error() );

mysqli_query( $baglan, 'SET CHARACTER SET utf8' );
mysqli_query( $baglan, 'SET NAMES utf8' );



bundan sonrada, mysqli_fetch_assoc ile sonuçları alıp kullanmak kalıyor.
$sonuc_kumesi = mysqli_query( $baglan, 'SELECT isim, soyisim FROM ....' ); 

while ($array_sonuc_satiri = mysqli_fetch_assoc( $sonuc_kumesi )) {
printf ("%s %s\n", $array_sonuc_satiri['isim'], $array_sonuc_satiri['soyisim']);
}


Bu mesaja 1 cevap geldi.
H
10 yıl (139 mesaj)
Teğmen
Konu Sahibi

Kardeşim gerçekten çok sağol. Artık db.php dosyası hata vermiyor. Ama şu ikinci kısımda dediğin şeyi anlamadım ve index.php'den hata almaya başladım. Ne yapmalıyım?

Bu arada bu defa şunları verdi:

( ! ) Warning: require(db.php): failed to open stream: No such file or directory in C:\wamp\www\uyelik\index.php on line 1

( ! ) Fatal error: require(): Failed opening required 'db.php' (include_path='.;C:\php\pear') in C:\wamp\www\uyelik\index.php on line 1





< Bu mesaj bu kişi tarafından değiştirildi HastaLaVi2 -- 9 Kasım 2015; 21:37:31 >
Bu mesaja 1 cevap geldi.
/
10 yıl (16 mesaj)
Er

ilk kısım veritabanına bağlanmak içindi.

ikinci kısım ise, veritabanını sorgulayıp, sonuçları ekrana basmak için bir örnekti sadece.
ikinci kısmı veritabanını nerede sorgulamak istiyorsan, orada kullanabilirsin.

hataya gelince; belliki dosyayı bulamıyor.

iki dosyada aynı klasördemi?
db.php'yi çağıran index.php farklı bir klasördeyse, db.php'nin bulunduğu klasörü doğru belirtmen lazım.
örneğin:
require('../db.php');
require('/db.php');
require('/uyelik/db.php');

eğer aynı klasörde oldukları halde birbirlerini bulamıyorlarsa, iki şeyi kontrol edip düzeltmen gerekiyor.

ilk olarak, hatada yazdığı gibi, php gerçekten 'c:\php' adresindemi yüklü. wamp'la kurduysan, 'c:\wamp\....' gibi bi adreste olma ihtimali daha yüksek. buda 'include_path' hatalı veya kapalı demektir.
burada yapman gereken, wampserver menü'deki php.ini'yi düzenleyip, 'include_path' satırını, php'nin bulunduğu klasör adresi olarak değiştirmen gerekiyor. eğer 'include_path' satırının başında ';' varsa, onuda kaldırmalısın, ama 'include_path' in içindeki '.;' ifadesini kaldırma.
örneğin:
include_path = ".;C:\wamp\bin\php\php5.6.15\pear"

ikinci olarakta, apache'nin httpd.conf dosyasındaki DocumentRoot'un doğru olup olmadığını kontrol etmelisin. httpd.conf dosyasına yine wampserver menüsünden erişebilirsin. bunun değeride dosyaları koyduğun 'www' klasörünün adresi olmalı.

tabii php.ini ve httpd.conf dosyalarında değişiklik yaparsan, apache'i yeniden başlatman gerekiyor.


Bu mesaja 1 cevap geldi.
H
10 yıl (139 mesaj)
Teğmen
Konu Sahibi

httpd.conf dosyasında herhangi bir sorun yok. Aynen dediğin gibi kardeşim. Ama php.ini dosyasına giriyorum. Karşıma şu satır çıktı dediğini arattığımda:

; UNIX: "/path1:/path2" 
; include_path = ".:/php/includes"
;
; Windows: "\path1;\path2"
; include_path = ".;c:\php\includes"
;
; PHP's default setting for include_path is ".;/path/to/php/pear"
;http://php.net/include-path


Dediğinden iki satırda da olduğu için şöyle yaptım:

; UNIX: "/path1:/path2" 
include_path = ".;C:\wamp\bin\php\php5.5.12"
;
; Windows: "\path1;\path2"
include_path = ".;C:\wamp\bin\php\php5.5.12"
;
; PHP's default setting for include_path is ".;/path/to/php/pear"
;http://php.net/include-path


Lakin hala hatayı almaya devam ediyorum. Ne yapmalıyım ya? Sana da sürekli dert oldum ben böyle.

Bu arada aldığım hata şöyle değişti:

( ! ) Fatal error: require(): Failed opening required 'db.php' (include_path='.;C:\wamp\bin\php\php5.5.12') in C:\wamp\www\uyelik\index.php on line 1





< Bu mesaj bu kişi tarafından değiştirildi HastaLaVi2 -- 13 Kasım 2015; 21:25:13 >
Bu mesaja 1 cevap geldi.
/
10 yıl (16 mesaj)
Er

require('db.php'); yerine şunları sırayla bir denesene:
require( __DIR__ . '/db.php' );
require( $_SERVER['DOCUMENT_ROOT'] . '/uyelik/db.php' );
require( __DIR__ . '/uyelik/db.php' );
require( $_SERVER['DOCUMENT_ROOT'] . '/db.php' );

bu arada, 'include_path' i şu şekilde düzeltmelisin. vede bu satırdan sadece bir tane olsun, iki defa eklemişsin, zaten UNIX'in altına eklediğin 'include_path' öyle olmaz, onu kaldır. sadece windows için aşağıdakini gir:
include_path = ".;C:\wamp\bin\php\php5.5.12\pear"



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.