Posts Tagged ‘ZendFramework’

ZF FAQ: Минимальный bootstrap.php

Posted in Tips And Tricks, ZendFramework on July 27th, 2009 by Yaroslav Vorozhko – Be the first to comment

Сегодня открываю в своем блоге раздел Zend Framework FAQ. Куда соотвественно буду писать различные вопросы-ответы по теме программирования в Zend Framework.

Итак, вопрос:

Каким должен быть минимальный bootstrap.php?

Ответ:

Создайте файл application/Bootstrap.php

и его содержимое как минимум должно быть таким:

PHP:
  1. class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
  2. {
  3. }

Класс Bootstrap появился с версией 1.8. Поэтому при переходе с 1.7 на 1.8 учтитывайте это.

Проверка существования таблицы в базе данных с ZendFramework

Posted in MySQL, Tips And Tricks, ZendFramework on April 19th, 2009 by Yaroslav Vorozhko – Be the first to comment

Существует несколько способов проверить наличие таблицы в базе данных с помощью zendframework.

Первый и самый простой это использовать функцию listTables из Zend_db, но у этой функции есть ограничение, она получает список таблиц только текущей базы данных.

Например вам надо узнать существует ли таблица my_table в подключении к текущей базе данных:

$db = $this->getAdapter();

$tables = $db->listTables();

if (in_array('my_table', $table)){

//todo something with table

}

listTables() возвращает массив имен всех таблиц в текущей базе данных.

И второй метод является более универсальным, так как с его помощью можно проверить наличие таблицы в любой базе данных, если текущие права на подключение позволяют вам просматривать эту базу данных.

Пример:

$db = $this->getAdapter();

$sql = "show tables from any_db like 'my_table' ";

if ( $db->fetchOne($sql) ){

//todo something with table

}

fetchOne() вернет строку с именем таблицы, если таблица будет найдена, если ничего не будет найдено, то будет возвращена пустая строка.

С помощью приема с show tables можно проверять на существование одной и более таблиц, что делает этот прием более универсальным.

ZF Error: Can’t create/write to file

Posted in Tips And Tricks, ZendFramework on February 16th, 2009 by Yaroslav Vorozhko – Be the first to comment

Рассмотрим ситуацию когда вы получаете следующее сообщение об ошибке от ZendFramework.

exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[HY000]:
General error: 1 Can't create/write to file
'C:\WINDOWS\TEMP\#sql_c48_0.MYI' (Errcode: 13)' in
C:\...\Zend\Db\Statement\Pdo.php:227

Errorcode 13: - это сообщение об ошибке от ОС, что нет прав на запись в каталог или файл.

Если вы получаете это сообщение каждый раз при выполнении SQL, то первое и самое вероятное, проверьте права на чтение/запись во временный каталог установленный в вашем php.ini.
В данном случае C:\WINDOWS\TEMP\ .

Иногда такая ошибка случается один раз из 100 запусков SQL команд, тогда посмотрите не блокирует ли другая программа этот каталог, это может быть например антивирус или другая программа, которая интенсивно работает с файловой системой.

Надеюсь это вам помогло, если нет, тогда жду комментариев.