Daha fazla
- Cinsiyet
- Erkek
- Meslek
- PHP Developer
PDO'ya başladım, fakat bir sorunum var.
config.php dosyamdaki veritabanı bilgilerimi guncelleme.php dosyasına include ile çekip veri yazdırmak istiyorum hata alıyorum.
Kodları şöyle vereyim.
config.php
guncelleme.php
Bu şekilde:
Bu hatayı alıyorum.
Foreach döngüsü üstüne veritabanı bilgilerimi eklediğimde ;
Hiç hata almıyorum ve veriler listeleniyor. Ama bunu yazmadan yani include komutuyla zaten veritabanı bilgilerini aktarmış oluyorum. Neyi yanlış yapıyorum? Include ile çekmem doğru değil mi ? PDO hariç diğer PHP&MySQL işlemlerinde aynı şekilde kullandım.
config.php dosyamdaki veritabanı bilgilerimi guncelleme.php dosyasına include ile çekip veri yazdırmak istiyorum hata alıyorum.
Kodları şöyle vereyim.
config.php
PHP:
<?php
try {
//Veritabanı bağlantımız burada
$baglanti = new PDO("mysql:host=localhost;dbname=site", "root", "");
$baglanti->exec("SET NAMES utf8");
$baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//Site ayarlarımızı çektiğimiz kod burada
$sorgu = $baglanti->query("SELECT * FROM ayarlar");
$cikti = $sorgu->fetch(PDO::FETCH_ASSOC);
//Site ayarlarımızı çektiğimiz kod burada
$cek = 'SELECT * FROM ayarlar';
} catch (PDOException $e) {
die($e->getMessage());
}
$baglanti = null;
?>
guncelleme.php
PHP:
<?php include "config.php"; ?>
<table cellpadding="4" cellspacing="0" border="0" width="300" style="font-family:Tahoma; font-size:14px; border:solid; border-color:#999999; border-width:1px;">
<tr style="background-color:#dddddd;"><td>No</td><td>Alan1</td><td>Alan2</td><td>İşlem</td></tr>
<?php
foreach($baglanti->query($cek) as $listele) {
$menu3 = $listele['menu3'];
$menu1 = $listele['menu1'];
$menu2 = $listele['menu2'];
echo '<form action="guncelle.php" method="POST"><tr><td><input type="text" name="menu1" value="'.$menu1.'"></td><td><input type="text" name="menu2" value="'.$menu2.'"></td><td><input type="text" name="menu3" value="'.$menu3.'"></td><td><input type="submit" value="Güncelle"></td></tr></form>';
}
?>
</table>
Bu şekilde:
( ! ) Fatal error: Uncaught Error: Call to a member function query() on null in C:\wamp64\www\*\guncelleme.php on line 8 |
---|
( ! ) Error: Call to a member function query() on null in C:\wamp64\www\*\guncelleme.php on line 8 |
Bu hatayı alıyorum.
Foreach döngüsü üstüne veritabanı bilgilerimi eklediğimde ;
PHP:
$baglanti = new PDO("mysql:host=localhost;dbname=site", "root", "");
$baglanti->exec("SET NAMES utf8");
$baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
Hiç hata almıyorum ve veriler listeleniyor. Ama bunu yazmadan yani include komutuyla zaten veritabanı bilgilerini aktarmış oluyorum. Neyi yanlış yapıyorum? Include ile çekmem doğru değil mi ? PDO hariç diğer PHP&MySQL işlemlerinde aynı şekilde kullandım.
Son düzenleme: