Показать сообщение отдельно
  #4 (permalink)  
Старый 27.04.2014, 20:06
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

1. Никогда не вставляйте код подключения к базе данных в скрипт. Вы должны выработать для себя как аксиому. Это Singleton одиночка должны быть во всех ваших проектах.
2. close используется когда надо принудительно закрыть соединение, действие происходит автоматически
3. ид в таблицах обычно инкремент, так что ORDER BY `id` DESC' лишнее
Мой вариант
<?php
//file dbConnect.php
class DbConnect
{
	private static $instance = null;

	final private function __construct(){}

	final private function __clone(){}

	public static function getInstance()
	{
		if (!self::$instance) {
			if (!function_exists('mysqli_connect')) {
				die('Адаптер MySQL mysqli не доступен');
			}

			self::$instance = mysqli_connect(
				HOSTNAME,
				USERNAME,
				PASSWORD,
				DBNAME
			) or die("Не удалось подключиться к MySQL: ("
				. self::$instance->connect_errno . ") "
				. self::$instance->connect_error);
			mysqli_set_charset(self::$instance, "utf8");
		}
		return self::$instance;
	}
}

class DbFunction
{
	private $db;

	public function __construct()
	{
		$this->db = DbConnect::getInstance();
	}

	public function load_table($table)
	{
		$resultArray = array();
		if ($result = $this->db->query("SELECT * FROM $table")) {
			while ($row = $result->fetch_array(MYSQL_ASSOC)) {
				$resultArray[] = $row;
			}
		}
		return $resultArray;
	}
}

Используем
require_once "db.config.php"; // в нем задаем HOSTNAME, USERNAME, PASSWORD, DBNAME
require_once "dbConnect.php";
$db = new DbFunction();
$songs= $db->load_table("songs");
echo json_encode($songs);
die; //прекращаем работу
Ответить с цитированием