Стандартная библиотека MySQL
Кодировка
когда вместо русских букв отображаются ????? ?? ????????, может помочь это:
mysql_query( "SET character_set_client = cp1251;" );mysql_query( "SET character_set_connection = cp1251;" );
mysql_query( "SET character_set_results = cp1251;" );
ставиться сразу после подключения к БД.
PDO
Класс для унифицированной работы с базами данных.http://ru2.php.net/pdo
Создать курсор БД
$cursor = new PDO( sprintf( "mysql:host=%s;dbname=%s",
Config::$dbHost, Config::$dbName),
Config::$dbUser, Config::$dbPass);
foreach ($cursor->query("select 1") as $row){
print_r( $row );
}
Параметры соединения указываеются четвёртым аргументом:Config::$dbHost, Config::$dbName),
Config::$dbUser, Config::$dbPass);
foreach ($cursor->query("select 1") as $row){
print_r( $row );
}
$dbh = new PDO($dbtype.':host='.$dbhost.';dbname='.$dbname, $dbuser, $dbpass, array(PDO::ATTR_PERSISTENT => true));
Выполнение запросов
Для выполнения запросов есть два метода: prepare и query $q = $this->db->prepare( "
insert into advert ( advert_nm, advert_text, homepage, group_id )
values (:title, :text, :homepage, :groupId )
" );
$q->bindParam(':title', $_POST["adv_title"], PDO::PARAM_STR, 255 ); # есть ещё PDO::PARAM_INT
$q->bindParam(':text', $_POST["adv_text"], PDO::PARAM_STR, 1024 );
$q->bindParam(':homepage', $_POST["home_page"], PDO::PARAM_STR, 255 );
$q->bindValue(':groupId', 1, PDO::PARAM_INT );
$q->execute(); # после выполнения select можно получить данные через $q->fetch(), fetchall(), fetchObject(), fetchColumn()
## после выполнения insert -> $this->db->lastInsertId();
$a = $q->errorInfo();
if ($a[0]=="00000"){
header( "Location: /do/" );
}
Если нужно выполнить несколько запросов подряд, то могут возникнуть запарки: на некоторых серверах PDO может иметь только одно подготовленное выражение.insert into advert ( advert_nm, advert_text, homepage, group_id )
values (:title, :text, :homepage, :groupId )
" );
$q->bindParam(':title', $_POST["adv_title"], PDO::PARAM_STR, 255 ); # есть ещё PDO::PARAM_INT
$q->bindParam(':text', $_POST["adv_text"], PDO::PARAM_STR, 1024 );
$q->bindParam(':homepage', $_POST["home_page"], PDO::PARAM_STR, 255 );
$q->bindValue(':groupId', 1, PDO::PARAM_INT );
$q->execute(); # после выполнения select можно получить данные через $q->fetch(), fetchall(), fetchObject(), fetchColumn()
## после выполнения insert -> $this->db->lastInsertId();
$a = $q->errorInfo();
if ($a[0]=="00000"){
header( "Location: /do/" );
}
Прежде чем создавать очередной запрос, нужно удалить (unset) старое подготовленное выражение.
fetchObject
$res = $q->fetchObject();
print $res->column_nm;
print $res->column_nm;
dbSimple
Для начала
http://dklab.ru/lib/DbSimple/dbSimple не обновлялся с 2006(?) года.
В PHP5 появился класс PDO для работы с БД.
Интерфейс библиотеки (кратко)
Полное описание интерфейса см. в подробной документации.
mixed connect(string $dsn) Соединение с указанной СУБД, используя DSN. mixed select(string $query [,$arg1...]) Выборка двумерного массива (список строк). hash selectRow(string $query [,$arg1...]) Выборка однострочного результата запроса (одна строка). array selectCol(string $query [,$arg1...]) Выборка одноколоночного результата запроса (один столбец). scalar selectCell(string $query [,$arg1...]) Выборка скалярного результата запроса (одна ячейка). mixed selectPage(int &$total, string $query [,$arg1...) Выборка ограниченного двумерного массива с занесением общего числа записей в переменную. mixed query(string $query [,$arg1...]) Вызов не-SELECT запроса; для автоинкрементных полей в INSERT-запросах возвращает ID вставленной записи. mixed transaction([mixed $parameters]) Запускает новую транзакцию. mixed commit() / mixed rollback() Подтверждает/отменяет текущую транзакцию.
Комментариев нет:
Отправить комментарий