In the previous article, I brought you "How to handle errors in PDO for PHP database learning?", which introduces the relevant knowledge of PDO error handling in PHP in detail. In this article, let's take a look at how to set and obtain PDO attributes in PHP. I hope everyone has to help!
In the previous article we learned about the issues related to PDO error handling in PHP, then let’s learn how to set and obtain PDO attributes. There are many properties in the PDO object that can be used to adjust the behavior of the PDO or obtain the underlying driver state.
If there is no attribute option set in the last parameter in the constructor when creating a PDO object, you can usesetAttribute()
and # in the PDO object after the object is created. ##getAttribute()Method to set and get the values of these attributes. Then let us take a look at these two methods together.
getAttribute()
Method
getAttribute ()The method only needs to provide one parameter, and can pass a specific attribute name representing this parameter. After successful execution, it will return the value specified by the attribute, otherwise it will return NULL. It is easy to understand. Its syntax format is as follows:
PDO::getAttribute(int $attribute)
$attributeis
PDO::ATTR_*One of the constants. There are many constants applied to database connections.
TRUE]; try{ $pdo = new PDO('mysql:dbname=test;host=127.0.0.1','root','root',$opt); }catch(PDOException $e){ echo '数据库连接失败:'.$e->getMessage(); exit(); } echo 'PDO 是否关闭自动提交功能:'.$pdo -> getAttribute(PDO::ATTR_AUTOCOMMIT); echo '
当前 PDO 的错误处理模式:'.$pdo -> getAttribute(PDO::ATTR_ERRMODE); echo '
表字段字符的大小写转换:'.$pdo -> getAttribute(PDO::ATTR_CASE); echo '
空字符串转换为 SQL 的 null:'.$pdo -> getAttribute(PDO::ATTR_ORACLE_NULLS); echo '
应用程序提前获取数据大小:'.$pdo -> getAttribute(PDO::ATTR_PERSISTENT); ?>
PDO::ATTR_AUTOCOMMITindicates whether PDO turns off the automatic submission function,
PDO::ATTR_ERRMODErepresents the current PDO error handling mode,
PDO::ATTR_CASErepresents the case conversion of table field characters,
PDO::ATTR_ORACLE_NULLSIt means that the empty string is converted into SQL null,
PDO::ATTR_PERSISTENTmeans that the application obtains the data size in advance.
PDO::ATTR_CONNECTION_STATUSRepresents unique information related to the connection status.
PDO::ATTR_SERVER_INFORepresents database-specific server information.
PDO::ATTR_SERVER_VERSIONRepresents the database server version number.
PDO::ATTR_CLIENT_VERSIONRepresents the database client version number.
setAttribute()
Method
setAttribute ()The method can be used to set the attributes of the database handle. setAttribute() is slightly more complicated than getAttribute(). Its syntax format is as follows:
PDO::setAttribute(int $attribute, mixed $value)
$attributeprovides the specific attribute name of the PDO object, and the second parameter
$valueis Assigns a value to this specified property.
PDO::ATTR_CASEmeans that the column name can be forced to be in the specified case, where PDO::CASE_LOWER means that the column name is forced to be lowercase; PDO::CASE_NATURAL means that the column name returned by the database driver is retained. ;PDO::CASE_UPPER means forcing column names to be uppercase.
PDO::ATTR_ERRMODErepresents an error report, where PDO::ERRMODE_SILENT represents only setting the error code; PDO::ERRMODE_WARNING represents causing an E_WARNING error; PDO::ERRMODE_EXCEPTION represents throwing exceptions Exceptions.
PDO::ATTR_ORACLE_NULLSmeans available in all drivers, not limited to Oracle, converts NULL and empty strings, where PDO::NULL_NATURAL means no conversion; PDO::NULL_EMPTY_STRING It means converting an empty string into NULL; PDO::NULL_TO_STRING means converting NULL into an empty string.
setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER); echo 'PDO::ATTR_CASE属性的值为:'.$pdo -> getAttribute(PDO::ATTR_CASE); $pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_LOWER); echo '
PDO::ATTR_CASE属性的值为:'.$pdo -> getAttribute(PDO::ATTR_CASE); $pdo->setAttribute(PDO::ATTR_CASE, PDO::CASE_NATURAL); echo '
PDO::ATTR_CASE属性的值为:'.$pdo -> getAttribute(PDO::ATTR_CASE); ?>
PDO::ATTR_STRINGIFY_FETCHES
means converting the value into a string when extracting;
PDO::ATTR_STATEMENT_CLASS
Represents setting a user-provided statement class derived from PDOStatement. Cannot be used with persistent PDO instances.
PDO::ATTR_AUTOCOMMIT
Indicates whether to automatically submit each individual statement. It is available in OCI, Firebird and MySQL.
PDO::ATTR_DEFAULT_FETCH_MODE
Indicates setting the default extraction mode.
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
indicates the use of buffered queries, which is available in the MySQL database.
We also need to pay attention to the following:PDO::ATTR_TIMEOUT
Indicates the number of seconds for the specified timeout. There may be differences between different drivers. For example, SQLite will give up acquiring a writable lock after waiting for this value, but other drivers may interpret this value as a connection or read timeout interval;
PDO::ATTR_EMULATE_PREPARES
Indicates enabling or disabling the simulation of prepared statements. Some drivers have no or limited support for local preprocessing. Use this setting to force PDO to always emulate prepared statements, or to try to use local prepared statements. If the driver cannot successfully prepare the current query, it will always fall back to simulating prepared statements.
If you are interested, you can click on "PHP Video Tutorial" to learn more about PHP knowledge.
The above is the detailed content of How to set and obtain PDO attributes in PHP database learning?. For more information, please follow other related articles on the PHP Chinese website!