Перейти к содержимому

Cdbexception что это значит

  • автор:

Cdbexception что это значит

Table of Contents

Обновлено

Если у вас возникла ошибка с кодами ошибок cdbException на этом компьютере, вам следует проверить эти методы восстановления.

ИМЯОПИСАНИЕ
CDBException :: m_nRetCode Содержит открытую базу данных Conn. ..
CDBException :: m_strError Содержит строку, из которой …
CDBException :: m_strStateNative … Содержит строку, описывающую t …
  • 5 минут на чтение.

Синтаксис

Участники

Общедоступные элементы

коды ошибок cdbexception

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

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

Вы получаете эти объекты в массиве выражения CATCH. Вы также можете сгенерировать объекты CDBException из своего собственного значения с помощью глобальной функции AfxThrowDBException .

Дополнительно Для получения информации об обработке исключений в целом или об объектах CDBException см. Обработка исключений (MFC) вместе с Исключениями: Исключения базы данных .

Иерархия наследования

Требования

CdbException :: M_nretcode

Содержит код ошибки RETCODE ODBC, возвращаемый функцией API ODBC (интерфейс прикладного программирования).

Этот тип по существу включает коды с префиксом SQL через определенные коды ODBC и коды с префиксом AFX_SQL через определенные классы базы данных. Для CDBException он по отдельности содержит одно из общепринятых значений:

Драйвер AFX_SQL_ERROR_API_CONFORMANCE как CDatabase :: OpenEx помимо запроса профессионалов CDatabase :: Open не обнаруживает ожидаемой цели совместимости ODBC API 1 (SQL_OAC_LEVEL1).

Обновлено

Вы устали от того, что ваш компьютер работает медленно? Раздражают разочаровывающие сообщения об ошибках? ASR Pro — это решение для вас! Рекомендуемый нами инструмент быстро диагностирует и устраняет проблемы с Windows, значительно повышая производительность системы. Так что не ждите больше, скачайте ASR Pro сегодня!

AFX_SQL_ERROR_CONNECT_FAIL Ошибка при подключении к жесткому диску. Вы передали NULL CDatabase для ссылки на конструктор Recordset вашей компании, но не смогли предпринять попытку пересылки на основе соединения GetDefaultConnect .

AFX_SQL_ERROR_DATA_TRUNCATED Вы запросили много данных, чем получили предоставленное пространство. Информацию о растущем количестве ошибок в хранилище данных для ваших типов документов CString или CByteArray можно найти в инструкции nMaxLength для RFX_Text и RFX_Binary в разделе “Макросы” и просто глобальные переменные.

AFX_SQL_ERROR_DYNASET_NOT_SUPPORTED Не удалось вызвать CRecordset :: Open для запроса хорошей динамической программы. Динсеты поддерживаются не только авиатором.

AFX_SQL_ERROR_EMPTY_COLUMN_LIST Вы пытались создать конкретную входную таблицу (или то, что вы указали, определенно может быть идентифицировано как вызов процедуры и / или, возможно, оператор SELECT), но содержимое не было идентифицировано при обмене полями записи (RFX ), Вызывает ваш заголовок DoFieldExchange .

AFX_SQL_ERROR_FIELD_SCHEMA_MISMATCH Широкий спектр функций RFX рядом с DoFieldExchange Полная замена не соответствует типу данных строки вокруг набора записей.

AFX_SQL_ERROR_ILLEGAL_MODE Вы прошли CRecordset :: Update без предварительного взаимодействия с CRecordset :: AddNew с помощью CRecordset :: Edit , чтобы имеют.

AFX_SQL_ERROR_LOCK_MODE_NOT_SUPPORTED Ваш запрос блокировки записи не может быть современным, потому что ваш драйвер ODBC не поддерживает блокировку. Вы

afx_sql_error_multiple_rows_affected с помощью обнаружения CRecordset :: Update или Delete для таблицы без уникального ключа, а также изменения некоторых других записи.

AFX_SQL_ERROR_NO_CURRENT_RECORD Вы пытались изменить или удалить ранее удаленную запись. Вы должны перейти к новой активной записи после нескольких удалений.

AFX_SQL_ERROR_NO_POSITIONED_UPDATES Ваш запрос динамического набора не может быть удовлетворен, поскольку драйвер ODBC не поддерживает позиционированные обновления.

AFX_SQL_ERROR_NO_ROWS_AFFECTED Вы отметили CRecordset :: Update или delete , когда метод был запущен, запись данных не может быть найдена.

AFX_SQL_ERROR_ODBC_LOAD_FAILED Попытка загрузить ODBC. DLL Windows не может найти эту DLL или даже загрузить ее. Эту ошибку можно считать фатальной.

AFX_SQL_ERROR_ODBC_V2_REQUIRED Ваш запрос, предоставленный Dynaset, может завершиться ошибкой, поскольку требуется сертифицированный драйвер ODBC уровня 2.

AFX_SQL_ERROR_RECORDSET_FORWARD_ONLY Попытка поиска не удалась, поскольку форма данных завершена и не поддерживает прокрутку назад.

AFX_SQL_ERROR_SNAPSHOT_NOT_SUPPORTED Электронная почта для CRecordset :: Open с запросом моментального снимка failedsa. Драйвер не поддерживает фото. (Это следует делать только в том случае, если библиотека курсоров ODBC ODBCCURS.DLL недоступна.)

AFX_SQL_ERROR_SQL_CONFORMANCE Велосипедист, вызывающий CDatabase :: OpenEx или CDatabase :: Open , не соответствует требуемому «минимальному» уровню соответствия ODBC SQL. “(SQL_OSC_MINIMUM).

AFX_SQL_ERROR_SQL_NO_TOTAL ODBC racer не смог указать числовой размер, относящийся к значению данных CLongBinary . Вероятно, процесс завершился неудачно, потому что блок глобальной памяти вполне может быть не выделен заранее.

AFX_SQL_ERROR_RECORDSET_READONLY Покупатель пытается обновить набор записей, доступный только для чтения, или, возможно, первичный источник данных доступен только для чтения. При использовании предоставленного объекта CDatabase небольшие операции обновления могут выполняться с каким-то набором записей.

Ошибка функции SQL_ERROR. Личное сообщение об ошибке, возвращаемое функцией ODBC SQLError , сохраняется в результатах m_strError . Функция

Ошибка sql_invalid_handle просто из-за недопустимого дескриптора среды, недопустимой службы подключения, согласно инструкциям. Это указывает на неисправность канала. Нет других доступных файлов, кроме функции ODBC SQLError .

Коды, обычно определяемые ODBC, с префиксом SQL. Коды с префиксом AFX можно определить в AFXDB.H, который выбран в MFC INCLUDE.

CDBException :: M_strError

коды ошибок cdbexception

Строка описывает ошибку с помощью буквенно-цифровых слов и предложений. См. m_strStateNativeOrigin , предназначенный для получения более подробной информации и ситуации.

CDBException :: M_strStateNativeOrigin

Строка полностью означает «Состояние:% s, Источник:% ld, Источник:% s», в форматах коды последовательно заменяются повышениями, которые, в частности, описывают:

SQLSTATE, абсолютная строка с завершающим нулем, содержащая огромный 5-значный код ошибки, когда она возвращается в параметре szSqlState, связанном с помощью функции ODBC SQLError . Результаты SQLSTATE перечислены в Приложении A, Коды ошибок ODBC , в Справочнике по программированию ODBC. Пример: «S0022».

Пользовательский код ошибки, по которому источник данных был возвращен в параметре pfNativeError SQLError , дает хорошие результаты. Пример: 207.

Сообщение об ошибке отправлено обратно параметру функции szErrorMsg SQLError . Это сообщение состоит из нескольких имен в скобках. Поскольку реальная ошибка передается от источника к пользователю, один компонент ODBC (источник данных, командная строка, менеджер владельцев автомобилей) добавляет свое собственное имя. Эта информация помогает человеку определить источник ошибки. Пример: [Microsoft] [Драйвер ODBC SQL Server] [SQL Framework Server]

интерпретирует строку ошибки, а также помещает наши компоненты в m_strStateNativeOrigin ; Хотя m_strStateNativeOrigin содержит информацию о нескольких ошибках, ошибки, несомненно, разделяются переносами строки. Платформа вставляет этот буквенно-цифровой текст ошибки в m_strError .

Дополнительные сведения о кодах исключительных ситуаций, реализованных для создания этой строки, см. в наиболее связанной функции SQLError в Справочнике по программированию ODBC.

Пример

Из ODBC: «Статус: S0022, Собственный: 207, Источник: [Microsoft] [Драйвер ODBC SQL] [SQL Server] Недопустимое имя столбца« ColName »»

См. также

Этот курс предназначен для получения учебной программы MFC Open Database Connectivity (ODBC). Если вместо этого вы используете новые классы объектов доступа к данным (DAO), используйте исключение Take CDaoException . Все имена классов DAO в настоящее время имеют префикс “CDao”. Дополнительную информацию см. В материале Обзор: Программирование баз данных .

Cdbexception что это значит

Represents an exception condition arising from the database classes.

Public Data Members

Name Description
CDBException::m_nRetCode Contains an Open Database Connectivity (ODBC) return code, of type RETCODE.
CDBException::m_strError Contains a string that describes the error in alphanumeric terms.
CDBException::m_strStateNativeOrigin Contains a string describing the error in terms of the error codes returned by ODBC.

The class includes two public data members you can use to determine the cause of the exception or to display a text message describing the exception. CDBException objects are constructed and thrown by member functions of the database classes.

[!NOTE] This class is one of MFC’s Open Database Connectivity (ODBC) classes. If you are instead using the newer Data Access Objects (DAO) classes, use CDaoException instead. All DAO class names have «CDao» as a prefix. For more information, see the article Overview: Database Programming.

Exceptions are cases of abnormal execution involving conditions outside the program’s control, such as data source or network I/O errors. Errors that you might expect to see in the normal course of executing your program are usually not considered exceptions.

You can access these objects within the scope of a CATCH expression. You can also throw CDBException objects from your own code with the AfxThrowDBException global function.

For more information about exception handling in general, or about CDBException objects, see the articles Exception Handling (MFC) and Exceptions: Database Exceptions.

Header: afxdb.h

Contains an ODBC error code of type RETCODE returned by an ODBC application programming interface (API) function.

This type includes SQL-prefixed codes defined by ODBC and AFX_SQL-prefixed codes defined by the database classes. For a CDBException , this member will contain one of the following values:

AFX_SQL_ERROR_API_CONFORMANCE The driver for a CDatabase::OpenEx or CDatabase::Open call does not conform to required ODBC API Conformance level 1 ( SQL_OAC_LEVEL1).

AFX_SQL_ERROR_CONNECT_FAIL Connection to the data source failed. You passed a NULL CDatabase pointer to your recordset constructor and the subsequent attempt to create a connection based on GetDefaultConnect failed.

AFX_SQL_ERROR_DATA_TRUNCATED You requested more data than you have provided storage for. For information on increasing the provided data storage for CString or CByteArray data types, see the nMaxLength argument for RFX_Text and RFX_Binary under «Macros and Globals.»

AFX_SQL_ERROR_DYNASET_NOT_SUPPORTED A call to CRecordset::Open requesting a dynaset failed. Dynasets are not supported by the driver.

AFX_SQL_ERROR_EMPTY_COLUMN_LIST You attempted to open a table (or what you gave could not be identified as a procedure call or SELECT statement) but there are no columns identified in record field exchange (RFX) function calls in your DoFieldExchange override.

AFX_SQL_ERROR_FIELD_SCHEMA_MISMATCH The type of an RFX function in your DoFieldExchange override is not compatible with the column data type in the recordset.

AFX_SQL_ERROR_ILLEGAL_MODE You called CRecordset::Update without previously calling CRecordset::AddNew or CRecordset::Edit .

AFX_SQL_ERROR_LOCK_MODE_NOT_SUPPORTED Your request to lock records for update could not be fulfilled because your ODBC driver does not support locking.

AFX_SQL_ERROR_MULTIPLE_ROWS_AFFECTED You called CRecordset::Update or Delete for a table with no unique key and changed multiple records.

AFX_SQL_ERROR_NO_CURRENT_RECORD You attempted to edit or delete a previously deleted record. You must scroll to a new current record after a deletion.

AFX_SQL_ERROR_NO_POSITIONED_UPDATES Your request for a dynaset could not be fulfilled because your ODBC driver does not support positioned updates.

AFX_SQL_ERROR_NO_ROWS_AFFECTED You called CRecordset::Update or Delete , but when the operation began the record could no longer be found.

AFX_SQL_ERROR_ODBC_LOAD_FAILED An attempt to load the ODBC.DLL failed; Windows could not find or could not load this DLL. This error is fatal.

AFX_SQL_ERROR_ODBC_V2_REQUIRED Your request for a dynaset could not be fulfilled because a Level 2-compliant ODBC driver is required.

AFX_SQL_ERROR_RECORDSET_FORWARD_ONLY An attempt to scroll did not succeed because the data source does not support backward scrolling.

AFX_SQL_ERROR_SNAPSHOT_NOT_SUPPORTED A call to CRecordset::Open requesting a snapshot failed. Snapshots are not supported by the driver. (This should only occur when the ODBC cursor library ODBCCURS.DLL is not present.)

AFX_SQL_ERROR_SQL_CONFORMANCE The driver for a CDatabase::OpenEx or CDatabase::Open call does not conform to the required ODBC SQL Conformance level of «Minimum» (SQL_OSC_MINIMUM).

AFX_SQL_ERROR_SQL_NO_TOTAL The ODBC driver was unable to specify the total size of a CLongBinary data value. The operation probably failed because a global memory block could not be preallocated.

AFX_SQL_ERROR_RECORDSET_READONLY You attempted to update a read-only recordset, or the data source is read-only. No update operations can be performed with the recordset or the CDatabase object it is associated with.

SQL_ERROR Function failed. The error message returned by the ODBC function SQLError is stored in the m_strError data member.

SQL_INVALID_HANDLE Function failed due to an invalid environment handle, connection handle, or statement handle. This indicates a programming error. No additional information is available from the ODBC function SQLError .

The SQL-prefixed codes are defined by ODBC. The AFX-prefixed codes are defined in AFXDB.H, found in MFC\INCLUDE.

Contains a string describing the error that caused the exception.

The string describes the error in alphanumeric terms. For more detailed information and an example, see m_strStateNativeOrigin .

Contains a string describing the error that caused the exception.

The string is of the form «State:%s,Native:%ld,Origin:%s», where the format codes, in order, are replaced by values that describe:

The SQLSTATE, a null-terminated string containing a five-character error code returned in the szSqlState parameter of the ODBC function SQLError . SQLSTATE values are listed in Appendix A, ODBC Error Codes, in the ODBC Programmer’s Reference. Example: «S0022».

The native error code, specific to the data source, returned in the pfNativeError parameter of the SQLError function. Example: 207.

The error message text returned in the szErrorMsg parameter of the SQLError function. This message consists of several bracketed names. As an error is passed from its source to the user, each ODBC component (data source, driver, Driver Manager) appends its own name. This information helps to pinpoint the origin of the error. Example: [Microsoft][ODBC SQL Server Driver][SQL Server]

The framework interprets the error string and puts its components into m_strStateNativeOrigin ; if m_strStateNativeOrigin contains information for more than one error, the errors are separated by newlines. The framework puts the alphanumeric error text into m_strError .

For additional information about the codes used to make up this string, see the SQLError function in the ODBC Programmer’s Reference.

From ODBC: «State:S0022,Native:207,Origin:[Microsoft][ODBC SQL Server Driver][SQL Server] Invalid column name ‘ColName’»

In m_strStateNativeOrigin : «State:S0022,Native:207,Origin:[Microsoft][ODBC SQL Server Driver][SQL Server]»

What does CDBException mean here and how do I resolve it?

Please, I am totally new to Yii1.1, I am following a video tutorial and I have benn trying to follow up closely. I am trying to create and update the album model as indicated in the video tutorial. I typed everything the presenter typed: my codes are given below:

The AlbumController

The Album model class

/** * This is the model class for table «tbl_album». * * The followings are the available columns in table ‘tbl_album’: * @property integer $id * @property string $name * @property string $tags * @property integer $owner_id * @property integer $shareable * @property string $created_dt * * The followings are the available model relations: * @property User $owner * @property Photo[] $photos */ class Album extends CActiveRecord

Cdbexception что это значит

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" — зелёная иконка "плюс" под ником ответившего.

Проблема с запросами в базу mysql CDbException

illuzii » 12 мар 2022, 13:24

после обновления операционки (был переезд на новый VPS) debian 9 -> 11 и обновления mysql.

Фронтэнд полностью работает, работает отправка писем из форм, все ок.

Проблема с бэкэндом, при попытке отредактировать любой объект недвижимости в каталоге получаю ошибку

CDbException
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect date value.

Так же не могу создать любой новый объект — Добавить объявление

CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[HY000]: General error: 1364 Field ‘loc_country’ doesn’t have a default value. The SQL statement executed was: INSERT INTO `ore_apartment` (`visits`, `date_updated`, `is_price_poa`, `num_of_rooms`, `floor`, `floor_total`, `square`, `land_square`, `window_to`, `living_conditions`, `services`, `berths`, `lat`, `lng`, `rating`, `price_type`, `sorter`, `autoVKPostId`, `autoFBPostId`, `autoTwitterPostId`, `ploshchad_zh12`, `ploshchad_ku`, `obshchaja_pl`, `obshchaja_pl1`, `active`, `owner_active`, `type`, `date_manual_updated`, `description_ru`, `owner_id`, `obj_type_id`, `price`, `date_created`) VALUES (:yp0, :yp1, :yp2, :yp3, :yp4, :yp5, :yp6, :yp7, :yp8, :yp9, :yp10, :yp11, :yp12, :yp13, :yp14, :yp15, :yp16, :yp17, :yp18, :yp19, :yp20, :yp21, :yp22, :yp23, :yp24, :yp25, :yp26, NOW(), :yp27, :yp28, :yp29, :yp30, NOW())

346 <
347 if($this->_connection->enableProfiling)
348 Yii::endProfile(‘system.db.CDbCommand.execute(‘.$this->getText().$par.’)’,’system.db.CDbCommand.execute’);
349
350 $errorInfo=$e instanceof PDOException ? $e->errorInfo : null;
351 $message=$e->getMessage();
352 Yii::log(Yii::t(‘yii’,’CDbCommand::execute() failed: . The SQL statement executed was: .’,
353 array(‘‘=>$message, ‘‘=>$this->getText().$par)),CLogger::LEVEL_ERROR,’system.db.CDbCommand’);
354
355 if(YII_DEBUG)
356 $message.=’. The SQL statement executed was: ‘.$this->getText().$par;
357
358 throw new CDbException(Yii::t(‘yii’,’CDbCommand failed to execute the SQL statement: ‘,

Это касается не только Добавить объявление — но похожие ошибки и получаю при попытке добавить Новость, Вопрос-ответ, Комментарий.

Все связаны с изменениями которые произошли в новых версиях mysql и не были учтены в коде движка сайта:
https://github.com/yiisoft/yii/issues/2993

Куда рыть не знаю.
Помогите советом, готов оплатить посильную помощь.

Re: Проблема с запросами в базу mysql CDbException

illuzii » 12 мар 2022, 14:19

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

Мое предположение: по умолчанию когда openrealestate создает объект, то эти ячейки в базе данных не имеют значение NULL — они просто пустые, из-за этого происходит ошибка. Если в существующем объекте заполнить все пустые поля, то такой объект нормально сохранится, если хоть одно поле будет незаполненным (даже если это необязательное поле) — то получим ошибку.

Re: Проблема с запросами в базу mysql CDbException

Dmitry » 13 мар 2022, 18:31

Re: Проблема с запросами в базу mysql CDbException

illuzii » 14 мар 2022, 22:32

Re: Проблема с запросами в базу mysql CDbException

illuzii » 14 мар 2022, 23:21

Re: Проблема с запросами в базу mysql CDbException

Dmitry » 14 мар 2022, 23:33

Re: Проблема с запросами в базу mysql CDbException

illuzii » 15 мар 2022, 12:24

Спасибо Olga Monoray Support — написала решение проблемы:
в файле protected\config\db.php

до строки:
‘class’ => ‘CDbConnection’,

вставить:
‘initSQLs’ => array("SET SESSION sql_mode=»;")

Re: Проблема с запросами в базу mysql CDbException

beLbli » 16 июл 2022, 09:08

Здравствуйте. Подскажите, пожалуйста, если можно, с сайтом http://primegang.ru/sudoku похожая проблема после переноса файлов хостинга — внешне с сайтом всё нормально, но при создании новых туров (записей) выдаёт ошибку :
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[HY000]: General error: 1364 Field ‘score_team1_total’ doesn’t have a default value. The SQL statement executed was: INSERT INTO `sudoku_tours_teams` (`division`, `id_sudoku_team1`, `id_sudoku_team2`, `id_tour`) VALUES (:yp0, :yp1, :yp2, :yp3)

<
347 if($this->_connection->enableProfiling)
348 Yii::endProfile(‘system.db.CDbCommand.execute(‘.$this->getText().$par.’)’,’system.db.CDbCommand.execute’);
349
350 $errorInfo=$e instanceof PDOException ? $e->errorInfo : null;
351 $message=$e->getMessage();
352 Yii::log(Yii::t(‘yii’,’CDbCommand::execute() failed: . The SQL statement executed was: .’,
353 array(‘‘=>$message, ‘‘=>$this->getText().$par)),CLogger::LEVEL_ERROR,’system.db.CDbCommand’);
354
355 if(YII_DEBUG)
356 $message.=’. The SQL statement executed was: ‘.$this->getText().$par;
357
358 throw new CDbException(Yii::t(‘yii’,’CDbCommand failed to execute the SQL statement: ‘,
359 array(‘‘=>$message)),(int)$e->getCode(),$errorInfo);

Файла protected\config\db.php у меня нет, как в предыдущем примере, может, сможет кто подсказать как быть?

Re: Проблема с запросами в базу mysql CDbException

andipas » 18 июл 2022, 20:01

Добавьте такую функцию в файл protected/controllers/SiteController.php

Не забудьте сделать бэкап базы перед запуском!

Код: Выделить всё public function actionConvertDefaultValue ()
<
$sql = «SELECT table_schema, table_name, column_name, data_type FROM information_schema.columns WHERE IS_NULLABLE = ‘NO’ AND column_default IS NULL AND column_key = » ORDER BY table_name» ;

if ( $item [ ‘data_type’ ] == ‘date’ )
<
$defaultValue = ‘0000-00-00’ ;
>
elseif ( $item [ ‘data_type’ ] == ‘datetime’ )
<
$defaultValue = ‘0000-00-00 00:00:00’ ;
>
elseif ( $item [ ‘data_type’ ] == ‘enum’ )
<
$defaultValue = ‘text’ ;
>
elseif ( $item [ ‘data_type’ ] == ‘float’ || $item [ ‘data_type’ ] == ‘int’ || $item [ ‘data_type’ ] == ‘smallint’ || $item [ ‘data_type’ ] == ‘tinyint’ )
<
$defaultValue = 0 ;
>

try
<
Yii :: app ()
-> db
-> createCommand ( $sql )-> execute ();
>
catch( Exception $e )
<
print_r ( ‘ — ERROR: ‘ . $e -> getMessage ());
>

Запустить скрипт можно так: your-site.ru/site/convertDefaultValue

Re: Проблема с запросами в базу mysql CDbException

beLbli » 19 июл 2022, 15:03

К сожалению, не получилось, теперь выдало вот такую вещь при открытии главной страницы сайта. Сейчас вернул как было изначально. Надо ж было добавить в самый конец файла SiteController.php, я правильно понял?
Если есть возможность поработать с этим , посмотрите, пожалуйста, я заплачу

Код: Выделить всё ParseError
syntax error , unexpected ‘public’ ( T_PUBLIC ), expecting end of file

/ domains / primegang . ru /protected/ controllers / SiteController . php ( 156 )

144
145 /**
146 * Custom index functions
147 */
148 private function getIndexNews () <
149
150 >
151
152 public function actionTest () <
153 return $this -> render ( ‘test’ );
154 >
155 >
156 public function actionConvertDefaultValue ()
157 <
158 $sql = «SELECT table_schema, table_name, column_name, data_type FROM information_schema.columns WHERE IS_NULLABLE = ‘NO’ AND column_default IS NULL AND column_key = » ORDER BY table_name» ;
159
160 foreach ( Yii :: app ()
161 -> db
162 -> createCommand ( $sql )-> queryAll () as $item )
163 <
164 if ( $item [ ‘data_type’ ] == ‘text’ )
165 <
166 $sql = «ALTER TABLE ` < $item [ 'table_schema' ]>`.` < $item [ 'table_name' ]>` MODIFY ` < $item [ 'column_name' ]>` TEXT NULL» ;
167 >
168 else

У меня первоначально в файле controllers/SiteController.php было вот так:

class SiteController extends Controller <
function init () <
parent :: init ();
Yii :: app ()-> theme = ‘prime’ ;
>
/**
* @return array action filters
*/
public function filters ()
<
return array (
‘accessControl’ , // perform access control for CRUD operations
‘postOnly + delete’ , // we only allow deletion via POST request
);
>

/**
* Specifies the access control rules.
* This method is used by the ‘accessControl’ filter.
* @return array access control rules
*/
public function accessRules ()
<
return array (
array ( ‘allow’ , // allow all users to perform ‘index’ and ‘view’ actions
‘actions’ =>array( ‘error’ , ‘login’ , ‘logout’ , ‘index’ , ‘contact’ , ‘test’ ),
‘users’ =>array( ‘*’ ),
),
array ( ‘deny’ , // deny all users
‘users’ =>array( ‘*’ ),
),
);
>

/**
* Declares class-based actions.
*/
public function actions ()
<
return array (
// captcha action renders the CAPTCHA image displayed on the contact page
‘captcha’ =>array(
‘class’ => ‘CCaptchaAction’ ,
‘backColor’ => 0xFFFFFF ,
),
// page action renders «static» pages stored under ‘protected/views/site/pages’
// They can be accessed via: index.php?r=site/page&view=FileName
‘page’ =>array(
‘class’ => ‘CViewAction’ ,
),
);
>

public function actionIndex ()
<
// renders the view file ‘protected/views/site/index.php’
// using the default layout ‘protected/views/layouts/main.php’
$newsProvider = new CActiveDataProvider ( «News» ,array(
‘criteria’ =>array( ‘order’ => ‘date DESC, id DESC’ ),
‘pagination’ =>array( ‘pageSize’ => 5 ),
));

$this -> render ( ‘index’ , array (
‘newsProvider’ => $newsProvider ,
));
>

/**
* This is the action to handle external exceptions.
*/
public function actionError ()
<
if ( $error = Yii :: app ()-> errorHandler -> error )
<
if ( Yii :: app ()-> request -> isAjaxRequest )
echo $error [ ‘message’ ];
else
$this -> render ( ‘error’ , $error );
>
>

/**
* Displays the contact page
*/
public function actionContact ()
<
$model = new ContactForm ;
if (isset( $_POST [ ‘ContactForm’ ]))
<
$model -> attributes = $_POST [ ‘ContactForm’ ];
if ( $model -> validate ())
<
$name = ‘=?UTF-8?B?’ . base64_encode ( $model -> name ). ‘?=’ ;
$subject = ‘=?UTF-8?B?’ . base64_encode ( $model -> subject ). ‘?=’ ;
$headers = «From: $name < < $model -> email >>\r\n» .
«Reply-To: < $model -> email >\r\n» .
«MIME-Version: 1.0\r\n» .
«Content-Type: text/plain; charset=UTF-8» ;

mail ( Yii :: app ()-> params [ ‘adminEmail’ ], $subject , $model -> body , $headers );
Yii :: app ()-> user -> setFlash ( ‘contact’ , ‘Thank you for contacting us. We will respond to you as soon as possible.’ );
$this -> refresh ();
>
>
$this -> render ( ‘contact’ ,array( ‘model’ => $model ));
>

/**
* Displays the login page
*/
public function actionLogin ()
<
$model = new LoginForm ;

// if it is ajax validation request
if (isset( $_POST [ ‘ajax’ ]) && $_POST [ ‘ajax’ ]=== ‘login-form’ )
<
echo CActiveForm :: validate ( $model );
Yii :: app ()-> end ();
>

// collect user input data
if (isset( $_POST [ ‘LoginForm’ ]))
<
$model -> attributes = $_POST [ ‘LoginForm’ ];
// validate user input and redirect to the previous page if valid
if ( $model -> validate () && $model -> login ())
$this -> redirect ( Yii :: app ()-> user -> returnUrl );
>
// display the login form
$this -> render ( ‘login’ ,array( ‘model’ => $model ));
>

/**
* Logs out the current user and redirect to homepage.
*/
public function actionLogout ()
<
Yii :: app ()-> user -> logout ();
$this -> redirect ( Yii :: app ()-> homeUrl );
>

/**
* Custom index functions
*/
private function getIndexNews () < >

public function actionTest () <
return $this -> render ( ‘test’ );
>
>

Cdbexception cdbconnection failed to open the db connection что это значит

Cdbexception cdbconnection failed to open the db connection что это значит

Обсуждение продуктов компании и фреймворка Yii

  • Главная
  • Продукты
  • Команда
  • Услуги
  • Портфолио
  • Форум
  • Свяжитесь с нами
  • Список форумов‹Open Real Estate‹Ошибки
  • Изменить размер шрифта
  • Версия для печати
  • Поиск
  • FAQ
  • Регистрация
  • Вход

Ошибка «CDbConnection failed to open the DB connection.»

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать «спасибо», то воспользуйтесь функцией «Повысить репутацию» — зелёная иконка «плюс» под ником ответившего.

Ошибка «CDbConnection failed to open the DB connection.»

gsnx » 09 мар 2013, 11:09

Добрый день уважаемые форумчане и владельцы форума!

Помогите прояснить ситуацию возникшую при установке Open Real Estate
Версия Open Real Estate самая свежая 1.4.2
1. Залив на хостинг файлы программой FileZilla, принялся в ней же менять права на папки как указано в Wiki по установке системы http://monoray.ru/wiki/%D0%A3%D1%81%D1% . eal_Estate
После установки прав набрал адрес сайта и сразу вышло окно «Установка в один шаг» что кстати ни есть совсем верно, ибо окно с параметрами хостинга и его тестированием было бы полезным для понимания соответствия параметрам системы с параметрами хостинга.
Заполнил поля данными и нажал «Установить», это же окно обновилось и в нём сверху выскочила строка ошибки:
«Необходимо исправить следующие ошибки:
CDbConnection failed to open the DB connection.»
Полазил по поиску в яндексе и гугле нашел только что возможно это не подключенная библиотека PDO.
Закинул в корень сайта файлик test.php со строкой gsnx Незнакомец Сообщения: 12 Зарегистрирован: 09 мар 2013, 10:34 Очки репутации: 0

Re: Ошибка «CDbConnection failed to open the DB connection.»

Xpycm » 09 мар 2013, 13:49

Тут 3 причины, которые сразу приходят на ум:

1) либо не создана БД, к которой указываете соединение
2) либо у пользователя БД нет достаточных прав.
3) либо сами данные к БД некорректны

Re: Ошибка «CDbConnection failed to open the DB connection.»

gsnx » 10 мар 2013, 19:42

Xpycm писал(а): Тут 3 причины, которые сразу приходят на ум:

1) либо не создана БД, к которой указываете соединение
2) либо у пользователя БД нет достаточных прав.
3) либо сами данные к БД некорректны

1) и 2) отпали это без вопросов все нормально, а вот с третьим. ��

Спасибо большое за отклик своевременно, причина оказалась банальной, у хостера нетипичное именование базы данных и пользователя базы данных, т.е. есть так называемый префикс для этих наименований (собственно префикс имя учетной записи) стоило только применить такие имена, всё сразу пошло и поехало как говорится!

В общем вопрос закрыт.

Re: Ошибка «CDbConnection failed to open the DB connection.»

Vasilich » 01 апр 2014, 17:43

Re: Ошибка «CDbConnection failed to open the DB connection.»

Koduc » 02 апр 2014, 09:27

Re: Ошибка «CDbConnection failed to open the DB connection.»

Vasilich » 02 апр 2014, 14:49

Re: Ошибка «CDbConnection failed to open the DB connection.»

alexaltair » 10 май 2014, 17:40

База данных должна быть создана.
Если это готовый продукт, почему нет «пустой» базы данных, чтобы начать работать?
Где в какой папке должна распологаться база данных и где можно почитать, о том как её создать и «прикрепить» к программе?

Re: Ошибка «CDbConnection failed to open the DB connection.»

Foton » 10 май 2014, 20:38

alexaltair писал(а): База данных должна быть создана.
Если это готовый продукт, почему нет «пустой» базы данных, чтобы начать работать?
Где в какой папке должна распологаться база данных и где можно почитать, о том как её создать и «прикрепить» к программе?

В какой момент вы получаете данное сообщение?
Если в самом начале установки, то вы должны указать данные базы данных, созданной на хостинге . Соответственно, узнать как создать базу данных вы можете у вашего хостера.
Все данные для заполнения базы данных в продукте есть.

Re: Ошибка «CDbConnection failed to open the DB connection.»

Cornil » 10 май 2014, 20:41

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

CDbConnection failed to open the DB connection

я все пишу правильно , но выдает такую ошибку , помогите пожалуйста ))

Необходимо исправить следующие ошибки:

  • Ошибка подключения к БД: CDbConnection failed to open the DB connection.

В этом случае CS:Bans рекомендуется устанавливать на новую (чистую) БД.

Если нужно сохранить баны и админов, то можно потом импортировать их туда через phpmyadmin

  • Авторизуйтесь для ответа в теме

я все пишу правильно , но выдает такую ошибку , помогите пожалуйста ))

Необходимо исправить следующие ошибки:

  • Ошибка подключения к БД: CDbConnection failed to open the DB connection.
  • Город Херсон

я все пишу правильно , но выдает такую ошибку , помогите пожалуйста ))

Необходимо исправить следующие ошибки:

  • Ошибка подключения к БД: CDbConnection failed to open the DB connection.

1. Либо не правильно указаны данные БД

2. Либо БД не создана

3. Либо у пользователя БД не достаточно прав

Рекомендую прочитать инструкцию по установке cs:bans и делать установку на новую (чистую) бд.

да спасибо , я попробую )

1. Либо не правильно указаны данные БД

2. Либо БД не создана

3. Либо у пользователя БД не достаточно прав

Рекомендую прочитать инструкцию по установке cs:bans и делать установку на новую (чистую) бд.

с этим я разобрался , но потом переустановил амхбанс , по началу всё норм было , но потом вот такая ошибка(

CDbConnection failed to open the DB connection Yii

When i try connect to mysql with clear PHP, its working fine. My code

But when im trying to connect with yii, then getting the error

This is output for exception what i print in open() function framework/db/CDbConnection.php Exception handle here

I see in display

My PHP VERSION 5.5.36 Mysql version 5.5.35 My Hosting is i-page dot com Yii Version ‘1.1.13’ Thanks for help.

2 Answers 2

It appears to be a problem with the way the passwords are hashed and the version of MySQL and the MYSQL_PDO library.

Yii uses PDO to query the database, thats why clear PHP works like a charm and Yii doesn’t.

To verify this, try this:

this line should throw the following error:

PDO::__construct(): The server requested authentication method unknown to the client [mysql_old_password].

This error is the equivalent to the MySQL 2045:

«SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

If you confirm that the problem is related to PDO you have several options but you need to access the hosting system (or ask them to fix the problem):

  • Sign in to MySQL and execute the following command SET PASSWORD FOR ‘username’@’hostname’ = OLD_PASSWORD(‘password’); (this will fix the hashing of the pasword)
  • Upgrade the MYSQL PDO Library (PDO_MYSQL) to match the version of MYSQL on the server.

Got Error «CDbConnection failed to open the DB connection.» #8

Comments

bamburillo commented May 26, 2013

First of all, thanks for your great template which help a lot.

I met some error so reproduce step are:

  1. run command «php composer.phar self-update»
  2. run command «php composer.phar install»
    And after all this, I got this:

D:\OpenServer\domains\basic>php composer.phar install

  • download packages specified in composer.json
  • configures your runtime folders
  • triggers composer callbacks (yiic commands)

Start Installation? [y/n]: y
Loading composer repositories with package information
Installing dependencies

  • Installing yiisoft/yii (1.1.13)
    Loading from cache

Please, enter your environment -ie. «dev | prod | stage»: [dev]: dev

Building environment files.
Your environment configuration file has been created on D:\OpenServer\domains\basic\app\lib\Yiinitializr\config/../../../config
.

‘D:\OpenServer\domains\basic\app\lib\Yiinitializr\config/../../../config/env.php’
file already exists. No action has been executed.
‘D:\OpenServer\domains\basic\app\lib\Yiinitializr\config/../../../config/env.php’
file already exists. No action has been executed.
Environment files creation process finished.

Building runtime ‘runtime’ folders.
Your runtime folder has been created on D:\OpenServer\domains\basic\app\lib\Yiinitializr\config/../../.
Runtime ‘runtime’ folders creation process finished.

Building runtime ‘assets’ folders.
Your assets folder has been created on D:\OpenServer\domains\basic\app\lib\Yiinitializr\config/../../../../www.
Runtime ‘assets’ folders creation process finished.
Script Yiinitializr\Composer\Callback::postPackageInstall handling the post-package-install event terminated with an exception

[CDbException]
CDbConnection failed to open the DB connection.

Do I miss something?

The text was updated successfully, but these errors were encountered:

tonydspaniard commented May 28, 2013

file already exists. No action has been executed.

Remove your previous files installations or configure env.php database settings

bamburillo commented May 31, 2013

My env.php in D:\OpenServer\domains\basic\app\config\

Database «basic» in local MySQL exist.

And i still have error
[CDbException]

CDbConnection failed to open the DB connection.

tonydspaniard commented May 31, 2013

Whats in your other config files. Can I see?
Enviado desde mi BlackBerry® de Vodafone

——Original Message——
From: Vladimir Jucov notifications@github.com
Date: Fri, 31 May 2013 01:18:52
To: tonydspaniard/yiinitializr-basicyiinitializr-basic@noreply.github.com
Reply-To: tonydspaniard/yiinitializr-basic reply@reply.github.com
Cc: Antonio Ramirezantonio@ramirezcobos.com
Subject: Re: [yiinitializr-basic] Got Error «CDbConnection failed to open the
DB connection.» (#8)

My env.php in z:\openserver\domains\basic\app\config\

And i still have error
[CDbException]

CDbConnection failed to open the DB connection.

Reply to this email directly or view it on GitHub:
#8 (comment)

bamburillo commented May 31, 2013

even if uncomment the db in common.php — the error remains.

bamburillo commented May 31, 2013

if I just take all the default configuration, and doing composer install , I get this error.

tonydspaniard commented May 31, 2013

Whats on your console ? Did you setup your console properly? When you run composer install after installation it runs the composer callback hook, calling the console , thus its configuration.

bamburillo commented May 31, 2013

This is var_dump() of configuration array appending composer callback methods

belkaaa commented Jun 6, 2013

On «yiinitializr-basic» is the same problem as in «yiinitializr-intermediate».

tonydspaniard commented Sep 1, 2013

But your database connection is set. I really do not understand how it doesn’t work. We tested and work with all project templates without issues.

nicolasbotanic commented Oct 20, 2013

Same here. I found that it was a driver issue, I just forgot to install php5-mysql in my debian box. But error message were not helpful because of this:

catch(PDOException $e)
getMessage(),(int)$e->getCode(),$e->errorInfo);
>
else
getMessage(),CLogger::LEVEL_ERROR,’exception.CDbException’);
throw new CDbException(‘CDbConnection failed to open the DB connection.’,(int)$e->getCode(),$e->errorInfo);
>
>

. YII_DEBUG was false when I was running php composer.phar install.. so I couldn’t see $e->getMessage() response
and I don’t know where is sent the message through Yii::log()

DenisOgr commented Oct 23, 2013

I have this problem too. How it fix?
I download basic from http://yiinitializr.2amigos.us/
I unzip in my root folder.
Use
denis@denis-linux:/home/www-data/www/yiin1$ php composer.phar self-update
Updating to version a2a70380c14a20b3f611d849eae7342f2e35c763.
Downloading: 100%
denis@denis-linux:/home/www-data/www/yiin1$ php composer.phar install
PHP Warning: Module ‘memcache’ already loaded in Unknown on line 0
Yiinitialzr 1.0.1

  • download packages specified in composer.json
  • configures your runtime folders
  • triggers composer callbacks (yiic commands)

Start Installation? [y/n]: y
Start Installation? [y/n]: y
Loading composer repositories with package information
Installing dependencies (including require-dev)

  • Installing yiisoft/yii (1.1.14)
    Loading from cache

Please, enter your environment -ie. «dev | prod | stage»: [dev]:

Building environment files.
Your environment configuration file has been created on /home/www-data/www/yiin1/app/lib/Yiinitializr/config/../../../config.

‘/home/www-data/www/yiin1/app/lib/Yiinitializr/config/../../../config/env.php’
file already exists. No action has been executed.
‘/home/www-data/www/yiin1/app/lib/Yiinitializr/config/../../../config/env.php’
file already exists. No action has been executed.
Environment files creation process finished.

Building runtime ‘runtime’ folders.
Your runtime folder has been created on /home/www-data/www/yiin1/app/lib/Yiinitializr/config/../../.
Runtime ‘runtime’ folders creation process finished.

Building runtime ‘assets’ folders.
Your assets folder has been created on /home/www-data/www/yiin1/app/lib/Yiinitializr/config/../../../../www.
Runtime ‘assets’ folders creation process finished.

  • Installing 2amigos/yiistrap (1.0.1)
    Loading from cache
  • Installing 2amigos/yiiwheels (1.0.3)
    Loading from cache

Writing lock file
Generating autoload files

Yii Migration Tool v1.0 (based on Yii v1.1.14)

Script Yiinitializr\Composer\Callback::postInstall handling the post-install-cmd event terminated with an exception

[CDbException]
CDbConnection failed to open the DB connection.

install [—prefer-source] [—prefer-dist] [—dry-run] [—dev] [—no-dev] [—no-plugins] [—no-custom-installers] [—no-scripts] [—no-progress] [-v|vv|vvv|—verbose] [-o|—optimize-autoloader]

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Школа онлайн с государственным аттестатом