dakata__92
Super Moderator
Някой може ли да ми даде такъв клас за връзка с база данни. В нета има доста но просто някой който ще е практичен като конфиг файл примерно.
Принципно нещо такова:djman каза:
<?php
$dbhost = "localhost";
$dbuser = "root@localhost";
$dbpass = "";
$dbname = "test";
@mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($dbname) or die(mysql_error());
mysql_query("SET NAMES UTF8");
?>
Това което съм дал е стар код от нета за пример. Ааа работи но нужно ли е изобщо да го правя в клас това? Знам, че поствам грешен код просто за въпроса да попитам и да покажа какво имам предвид:djman каза:Махай тия @ И е силно желатено да не използваш mysql* вече.
Пробвай mysqli. Със сигурност работи. Ако не - включи го в php.ini
http://www.phphaven.com/article.php?id=65%C2%A0
class Database{
$DB_NAME = 'oop';
$DB_HOST = 'localhost';
$DB_USER = 'root';
$DB_PASS = '';
$mysqli = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
// A QUICK QUERY ON A FAKE USER TABLE
$query = "SELECT * FROM `user` WHERE `id`='1'";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
// GOING THROUGH THE DATA
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo $row['name'];
}
}
else {
echo 'NO RESULTS';
}
// CLOSE CONNECTION
mysqli_close($mysqli);
}
class database {
private static $instance = null;
private $db_conn = null;
private $db_sel = null;
private $db_host = '';
private $db_user = '';
private $db_pass = '';
private $db_name = '';
private function __construct() {
}
public static function getInstance() {
if (self::$instance == null) {
self::$instance = new database();
}
return self::$instance;
}
public function connect() {
if ($this->db_conn == null) {
$this->db_conn = @mysql_connect($this->db_host, $this->db_user, $this->db_pass);
if ($this->db_sel == null) {
$this->db_sel = @mysql_select_db($this->db_name, $this->db_conn);
}
else {
throw new \Exception('Can not select database');
}
}
else {
throw new \Exception('Can not connect to database');
}
}
}
То си е като присвояване на клас и превръщането му в обект.djman каза:Няма смисъл да пресъздаваш mysqli.