database exception yii db exception

I got this error:

This is the main-local.php :

1 Answer 1

PDO support multiple database vendor so u need to tell which database to connect in order.

if you are using different port on mysql then do like this

Not the answer you’re looking for? Browse other questions tagged php yii yii2 or ask your own question.

Hot Network Questions

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2019 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2019.11.15.35459

В этой статье объясняется, как управлять исключениями базы данных. This article explains how to handle database exceptions. Большая часть материала этой статьи относится к работе с классами MFC для ODBC или классов MFC для объектов доступа к данным (DAO). Most of the material in this article applies whether you are working with the MFC classes for Open Database Connectivity (ODBC) or the MFC classes for Data Access Objects (DAO). Материал, относящийся к одной или другой модели, явно помечен. Material specific to one or the other model is explicitly marked. Ниже приведен список разделов. Topics include:

Подходы к обработке исключений Approaches to Exception Handling

Этот подход аналогичен при работе с DAO (устарел) или ODBC. The approach is the same whether you are working with DAO (obsolete) or ODBC.

Всегда следует писать обработчики исключений для обработки исключительных условий. You should always write exception handlers to handle exceptional conditions.

Самым практичным подходом к перехвату исключений базы данных является тестирование приложения с помощью сценариев исключений. The most pragmatic approach to catching database exceptions is to test your application with exception scenarios. Определите вероятные исключения, которые могут возникнуть при выполнении операции в коде, и принудительно появление исключения. Determine the likely exceptions that might occur for an operation in your code, and force the exception to occur. Затем изучите выходные данные трассировки, чтобы узнать, какое исключение возникает, или изучите возвращенные сведения об ошибке в отладчике. Then examine the trace output to see what exception is thrown, or examine the returned error information in the debugger. Это позволяет узнать, какие коды возврата будут отображаться для сценариев исключений, которые вы используете. This lets you know which return codes you’ll see for the exception scenarios you are using.

Коды ошибок, используемые для исключений ODBC Error Codes Used for ODBC Exceptions

Помимо кодов возврата, определенных платформой, имеющих имена формы AFX_SQL_ERROR_XXX, некоторые кдбексцептионс основаны на кодах возврата ODBC . In addition to return codes defined by the framework, which have names of the form AFX_SQL_ERROR_XXX, some CDBExceptions are based on ODBC return codes. Коды возврата для таких исключений имеют имена в формате SQL_ERROR_XXX. The return codes for such exceptions have names of the form SQL_ERROR_XXX.

Коды возврата — как определяемые платформой, так и определяемые с помощью ODBC, которые могут возвращать классы базы данных, задокументированы в элементе данных m_nRetCode класса CDBException . The return codes — both framework-defined and ODBC-defined — that the database classes can return are documented under the m_nRetCode data member of class CDBException . Дополнительные сведения о кодах возврата, определенных ODBC, доступны в справочнике программиста по ODBC SDK в библиотеке MSDN. Additional information about return codes defined by ODBC is available in the ODBC SDK Programmer’s Reference in the MSDN Library.

Коды ошибок, используемые для исключений DAO Error Codes Used for DAO Exceptions

Для исключений DAO обычно доступны дополнительные сведения. For DAO exceptions, more information is typically available. Доступ к сведениям об ошибках можно получить с помощью трех элементов данных перехваченного объекта кдаоексцептион : You can access error information through three data members of a caught CDaoException object:

m_pErrorInfo содержит указатель на объект CDaoErrorInfo , который инкапсулирует сведения об ошибке в коллекцию объектов ошибок DAO, связанных с базой данных. m_pErrorInfo contains a pointer to a CDaoErrorInfo object that encapsulates error information in DAO’s collection of error objects associated with the database.

m_nAfxDaoError содержит расширенный код ошибки из классов MFC DAO. m_nAfxDaoError contains an extended error code from the MFC DAO classes. Эти коды ошибок, имена которых имеют форму AFX_DAO_ERROR_XXX, задокументированы в элементе данных в CDaoException . These error codes, which have names of the form AFX_DAO_ERROR_XXX, are documented under the data member in CDaoException .

m_scode содержит объект OLE SCODE из DAO, если это применимо. m_scode contains an OLE SCODE from DAO, if applicable. Однако вам редко приходится работать с этим кодом ошибки. You’ll seldom need to work with this error code, however. Обычно дополнительные сведения доступны в двух других элементах данных. Usually more information is available in the other two data members. Дополнительные сведения о значениях SCODE см. в элементе Data. See the data member for more about SCODE values.

Дополнительные сведения об ошибках DAO, типе объекта ошибки DAO и коллекции ошибок DAO доступны в разделе Class кдаоексцептион. Additional information about DAO errors, the DAO Error object type, and the DAO Errors collection is available under class CDaoException.

Пример обработки исключений базы данных A Database Exception-Handling Example

В следующем примере предпринимается попытка создать объект, производный от CRecordset, в куче с помощью оператора New , а затем открыть набор записей (для источника данных ODBC). The following example attempts to construct a CRecordset-derived object on the heap with the new operator, and then open the recordset (for an ODBC data source). Аналогичный пример для классов DAO см. в разделе «пример исключения DAO» ниже. For a similar example for the DAO classes, see «DAO Exception Example» below.

Пример исключения ODBC ODBC Exception Example

Функция Open Member может вызвать исключение (типа кдбексцептион для классов ODBC), поэтому этот код будет заключен в Open скобки с блоком try . The Open member function could throw an exception (of type CDBException for the ODBC classes), so this code brackets the Open call with a try block. Последующий блок catch будет перехватывать CDBException . The subsequent catch block will catch a CDBException . Можно изучить сам объект Exception, вызываемый e , но в данном случае достаточно выяснить, что попытка создать набор записей не удалась. You could examine the exception object itself, called e , but in this case it is enough to know that the attempt to create a recordset has failed. Блок catch отображает окно сообщения и очищается путем удаления объекта набора записей. The catch block displays a message box and cleans up by deleting the recordset object.

Пример исключения DAO DAO Exception Example

Пример DAO похож на пример для ODBC, но обычно можно получить дополнительные сведения. The DAO example is similar to the example for ODBC, but you can typically retrieve more kinds of information. Следующий код также пытается открыть набор записей. The following code also attempts to open a recordset. Если эта предпринятая ошибка вызывает исключение, можно проверить элемент данных объекта исключения на наличие сведений об ошибке. If that attempt throws an exception, you can examine a data member of the exception object for error information. Как и в предыдущем примере ODBC, может быть достаточно выяснить, что попытка создать набор записей завершилась ошибкой. As with the previous ODBC example, it is probably enough to know that the attempt to create a recordset failed.

Этот код возвращает строку сообщения об ошибке из элемента m_pErrorInfo объекта исключения. This code gets an error message string from the m_pErrorInfo member of the exception object. MFC заполняет этот элемент при возникновении исключения. MFC fills this member when it throws the exception.

Описание сведений об ошибках, возвращаемых CDaoException объектом, см. в разделе classes кдаоексцептион and CDaoErrorInfo. For a discussion of the error information returned by a CDaoException object, see classes CDaoException and CDaoErrorInfo.

При работе с базами данных Microsoft Jet (. mdb) и в большинстве случаев при работе с ODBC будет только один объект Error. When you are working with Microsoft Jet (.mdb) databases, and in most cases when you are working with ODBC, there will be only one error object. В редких случаях при использовании источника данных ODBC и наличии нескольких ошибок можно выполнить цикл по коллекции ошибок DAO на основе числа ошибок, возвращенных кдаоексцептион:: жетерроркаунт. In the rare case when you are using an ODBC data source and there are multiple errors, you can loop through DAO’s Errors collection based on the number of errors returned by CDaoException::GetErrorCount. Каждый раз через цикл вызовите кдаоексцептион:: жетерроринфо , чтобы перезаполнить m_pErrorInfo элемент данных. Each time through the loop, call CDaoException::GetErrorInfo to refill the m_pErrorInfo data member.

Comments

Copy link Quote reply

xerong commented Aug 29, 2016 •

I have a table ‘cm_template. and i wanted to generate a model using gii. I already enabled tablePrefix in the config file as ‘_cm’ When i tried to generate a model, i got the below error. I have tried all i could but i could not fix this error. Please note that this is my 4th software projects i would do with yii .

SQLSTATE[42000]: Syntax error or access violation: 1102 Incorrect database name »
The SQL being executed was: SHOW TABLES FROM «
Error Info: Array
(
[0] => 42000
[1] => 1102
[2] => Incorrect database name »
)

Caused by: PDOException

SQLSTATE[42000]: Syntax error or access violation: 1102 Incorrect database name »

Оцените статью