Merhabalar,
Php ile database'e bağlanabilmek için bir sınıf kullanıyorum. Bu sınıfı kullanarak aynı projenin başka sayfalarında işlem yaptım. O sayfalarda da veri tabanından veriler çektim. Lakin ana sayfada veri çekmeye çalıştığımda hata alıyorum.
Aldığım hata:
Alıntı
Rowlar çekilemedi: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'medigardiyan_db.musteri' doesn't exist
PHP Class kodum:
<?php
namespace burhanaktas\db;
use PDOException;
class Database
{
private $host = "localhost";
private $dbname = "tubur";
private $uname = "root";
private $pass = "";
private $charset = "UTF8";
private $collation = "utf8_general_ci";
private $dsn;
private $pdo;
private $stmt = null;
function __construct()
{
$this->ConnectDB();
}
function ConnectDB()
{
$this->dsn = "mysql:host=" . $this->host . ";dbname=" . $this->dbname . ";charset=UTF8";
try {
$this->pdo = new \PDO($this->dsn, $this->uname, $this->pass);
$this->pdo->exec("SET NAMES '" . $this->charset . "' COLLATE '" . $this->collation . "'");
$this->pdo->exec("SET CHARACTER SET '" . $this->charset . "'");
$this->pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
$this->pdo->setAttribute(\PDO::ATTR_DEFAULT_FETCH_MODE, \PDO::FETCH_OBJ);
} catch (\PDOException $e) {
die("Bağlanılamadı: " . $e->getMessage());
}
}
function myQuery($query, $params)
{
if (is_null($params)) {
$this->stmt = $this->pdo->query($query);
} else {
$this->stmt = $this->pdo->prepare($query);
$this->stmt->execute($params);
}
return $this->stmt;
}
function getRows($query, $params = null)
{
try {
return $this->myQuery($query,$params)->fetchAll();
} catch (PDOException $e) {
die("Rowlar çekilemedi: " . $e->getMessage());
}
}
function getRow($query, $params = null)
{
try {
return $this->myQuery($query,$params)->fetch();
} catch (PDOException $e) {
die("Row çekilemedi: " . $e->getMessage());
}
}
function getColumn($query, $params = null)
{
try {
return $this->myQuery($query,$params)->fetchColumn();
} catch (PDOException $e) {
die("Column çekilemedi: " . $e->getMessage());
}
}
function Insert($query, $params = null)
{
try {
$this->myQuery($query,$params);
return $this->pdo->lastInsertId();
} catch (PDOException $e) {
if ($e->getCode() == 23000){
die("Bu kullanıcı adı var başka kullanıcı adı kullanın");
}
}
}
function Update($query, $params = null)
{
try {
return $this->myQuery($query,$params)->rowCount();
} catch (PDOException $e) {
die("Ekleme Başarısız: " . $e->getMessage());
}
}
function Delete($query, $params = null)
{
return $this->Update($query,$params);
}
function __destruct()
{
$this->pdo = null;
}
}Ana sayfada kullandığım kod:
require "../classes/database.class.php";
$db = new burhanaktas\db\Database;
$musteri = $db->getRows("SELECT * FROM musteri");Hata Resmi:
- php_errors.log da herhangii bir hata çıktısı ile karşılaşmadım.
- php versiyonum: 8.1.10
- MySql versiyonum: 8.0.30
- Server olarak Laragon kullanıyorum
Daha önceden "medigardiyan_db" diye bir veri tabanına bağlanmıştım lakin şimdi bağlantı ayarlarını değiştirdim ama eski veri tabanını görüyor hâla. Bir çözüm bulamadım.