利用PDO.so连接数据库
Posted 狱典司
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用PDO.so连接数据库相关的知识,希望对你有一定的参考价值。
pdo.so方法汇总
Class PDO
- 代表php和数据库服务之间的一个连接,功能主要是连接、查询
方法 | 功能 |
---|---|
__construcrt(string $dns [,string $username [,string $password [array $driver_opyions ]]] ) | 创建一个表示数据库连接的PDO实例 |
mixed errorCode(void) | 获取数据库句柄上一次操作相关的SQLSTATE |
public array errorInfo(void) | 获取与数据库句柄上的最后一个操作相关联的扩展错误信息 |
int exec(string $statement) | 执行一条SQL语句,并返回受影响的行数 |
mixed getAttribute(int $attribute) | 取回一个数据库连接的属性 |
string lastInsertId([string $name = NULL]) | 返回最后插入行的ID或序列值 |
public PDOStatement prepare(string $statement [,array $driver_options = array()]) | 准备要执行的语句并返回语句对象 |
public PDOStatementquery(string $statement) | 执行SQL语句,将结果集作为PDOStatement对象返回 |
bool setAttribute(int $attribute, mixed $value) | 设置属性 |
Class PDOStatement 结果集类
- 代表一条预处理语句,并在该语句被执行后代表一个相关结果集
方法 | 功能 |
---|---|
PDOStatement::columnCount | 返回结果集中的列数 |
PDOStatement::errorCode | 获取跟上一次语句句柄操作相关的SQLSTATE |
PDOStatement::errorInfo | 获取跟上次语句句柄操作相关的扩展错误信息 |
PDOStatement::execute | 执行一条预处理语句 |
PDOStatement::fetch | 从结果集中获取下一行 |
PDOStatement::fetchAll | 返回一个包含结果集中所有行的数组 |
PDOStatement::fetchColumn | 从结果集的下一行返单独的一列 |
PDOStatement::fetchObject | 获取下一行作为一个对象返回 |
PDOStatement::getAttribute | 检索一个语句属性 |
PDOStatement::getColumnMeta | 返回结果集中一列的元数据 |
PDOStatement::nextRowset | 在一个多行集语句句柄中推进到下一个行集 |
PDOStatement::rowCount | 返回受上一个SQL语句影响的行数 |
PDOStatement::setAttribute | 设置一个语句属性 |
PDOStatement::setFetchMode | 位于距设置默认的获取方式 |
DSN
dsn:数据源名称,包含了请求连接到的数据库的信息
通常,一个dns由PDO驱动名、紧随其后的冒号、以及具体的PDO驱动的连接语法组成。
dsn参数支持三种不同的方式创建一个数据库连接:
- Driver invocation:包含完整的DSN
- URI invocation:dsn由uri组成:后跟一个uri,该uri定义了包含dsn字符串的文件的位置;URI可以指定本地文件或远程URL;
- Aliasing:dsn由映射到php.ini中定义dsn字符串的pdo.dsn.name的名称组成。
- 返回值:成功则返回一个PDO对象。
- 错误/异常:如果试图连接到请求的数据库失败,则PDO:: _construct()抛出一个PDO异常(PDOException)。
预定义常量
- 下列常量由此扩展定义,且仅在此扩展编译入PHP或在运行时通过动态载入可用。
预定义常量 | 功能 |
---|---|
PDO::PARAM_BOOL (integer) | 表示布尔数据类型 |
PDO::PARAM_NULL (integer) | 表示SQL中的NULL数据类型 |
PDO::PARAM_INT (integer) | 表示SQL中的整型 |
PDO::PARAM_STR (integer) | 表示SQL中char、varchar或其它字符串类型 |
PDO::PARAM_LOB (integer) | 表示SQL中大对象数据类型 |
PDO::PARAM_STMT (integer) | 表示一个记录集类型,当前尚未被任何驱动支持 |
PDO::PARAM_INPUT_OUTPUT (integer) | 指定参数作为一个存储过程的inout参数。必须使用一个明确的 PDO::PARAM_*数据类型跟此值进行按位或 |
PDO::FETCH_LAZY (integer) | 指定获取方式,将结果集中的每一行作为一个对象返回,此对象的变量名对应着列名。PDO::创建用来访问的对象变量名。在PDOStatement::fetch All()中无效 |
PDO::FETCH_ ASSOC(integer) | 指定获取方式,将对应结果集中的每一行作为一个由列名索引的数组返回。如果结果集中包含多个名称相同的列,则PDO::FETCH_ASSOC每个列名只返回一个值 |
PDO::FETCH_ NAMED(integer) | 指定获取方式,将对应结果集中的每一行作为一个由列名索引的数组返回。如果结果集中包含多个名称相同的列,则PDO::FETCH_ASSOC每个列名返回一个包含值的数组 |
PDO::FETCH_NUM (integer) | 指定获取方式,将对应结果集中的每一行作为一个由列号索引的数组返回,从0开始 |
PDO::FETCH_BOTH (integer) | 指定获取方式,将对应结果集中的每一行作为一个由列号和列名索引的数组返回,从0开始 |
PDO::FETCH_OBJ (integer) | 指定获取方式,将对应结果集中的每一行作为一个属性名对应列名的对象返回 |
PDO::FETCH_BOUND (integer) | 指定获取方式,返回TRUE且将结果集中的列值分配给通过PDOStatement::bindParam() 或PDOStatement::bindColumn() 方法绑定的PHP变量 |
PDO::FETCH_COLUMN (integer) | 指定获取方式,从结果集的下一行返回所需要的那一列 |
PDO::FETCH_CLASS (integer) | 指定获取方式,返回一个所请求类的新实例,映射列到类中对应的属性名 ( 如果所请求类在不存在该属性,则调用set()魔术方法 ) |
PDO::FETCH_INTO (integer) | 指定获取方式,更新一个请求类的现有实例,映射列到类中对应的属性名 |
PDO::FETCH_FUNC (integer) | 允许在运行中完全用自定义的方法处理数据( 仅在PDOStatement::fetchAll()中有效 ) |
PDO::FETCH_GROUP (integer) | 根据值分组返回。通常和PDO::FETCH_COLUMN或PDO::FETCH_KEY_PAIR一起使用 |
PDO::FETCH_UNIQUE (integer) | 只取唯一值 |
PDO::FETCH_KEY_PAIR (integer) | 获取一个有两列的结果集到一个数组,其中第一列为键名,第二列为值。 |
PDO::FETCH_CLASSTYPE (integer) | 根据第一列的值确定类名 |
PDO::FETCH_SERIALIZE (integer) | 类似PDO::FETCH_INTO,但是以一个序列化的字符串表示对象。 |
PDO::FETCH_PROPS_LATE (integer) | 设置属性前调用的构造函数 |
PDO::ATTR_AUTOCOMMIT (ingeter) | 获取一个有两列的结果集到一个数组,其中第一列为键名,第二列为值 |
PDO::ATTR_PREFETCH (ingeter) | 根据第一列的值确定类名 |
PDO::ATTR_TIMEOUT (ingeter) | 类似PDO::FETCH_INFO,但是以一个序列化的字符串表示对象 |
PDO::ATTR_ERRMODE (ingeter) | |
PDO::ATTR_SERVER_VERSION (ingeter) | 此为只读属性;返回PDO所连接的数据库服务的版本信息 |
PDO::ATTR_CLIENT_VERSION (ingeter) | 此为只读属性;返回PDO驱动所用客户端的版本信息 |
PDO::ATTR_SERVER_INFO (ingeter) | 此为只读属性;返回一些关于PDO所连接的数据库服务的元信息 |
PDO::ATTR_CONNECTION_STATUS (ingeter) | |
PDO::ATTR_CASE (ingeter) | 用类似PDO::CASE_*的常量强制列名为指定的大小写 |
PDO::ATTR_CURSOR_NAME (ingeter) | 获取或设置使用游标的名称;当可以使用滚动游标和定位更新的时非常好用。 |
PDO::ATTR_CURSOR (ingeter) | 选择游标类型。PDO当前支持PDO::CURSOR——FWDONLY和PDO::CURSOR_SCROLL |
PDO::ATTR_DRIVER_NAME (ingeter) | 返回驱动的名称 |
PDO::ATTR_ORACLE_NULLS (ingeter) | 在获取数据时将空字符转换成SQL中的NULL |
PDO::ATTR_PERSISTENT (ingeter) | 请求一个持久连接,而非创建一个新链接 |
PDO::ATTR_STATEMENT_CLASS (ingeter) | |
PDO::ATTR_FETCH_CATALOG_NAMES (ingeter) | 将包含的目录名添加到结果集中的每个列名前面;目录名和列名各有一个小数点分开(.) |
PDO::ATTR_FETCH_TABLE_NAMES (ingeter) | 将包含的目录名添加到结果集中的每个列名前面;表名和列名各有一个小数点分开(.);此属性在驱动层面支持,所以有些驱动不可能支持此属性 |
PDO::ATTR_STRINGIFY_FETCHES (ingeter) | |
PDO::ATTR_MAX_COLUMN_LEN (ingeter) | |
PDO::ATTR_DEFAULT_FETCH_MODE (ingeter) | |
PDO::ATTR_EMULATE_PREPARES (ingeter) | |
PDO::ERRMODE_SILENT (ingeter) | 如果发生错误,则不显示错误或异常;希望开发人员显式地检查错误;此为默认模式 |
PDO::ERRMODE_WARNING (ingeter) | 如果发生错误,则显示一个PHP E_WARNING消息 |
PDO::ERRMODE_EXCEPTION (ingeter) | 如果发生错误,则显示一个PDOException消息 |
PDO::CASE_NATURAL (ingeter) | 保留数据库驱动返回的列名 |
PDO::CASE_LOWER (ingeter) | 强制列名小写 |
PDO::CASE_UPPER (ingeter) | 强制列名大写 |
PDO::NULL_NATURAL (integer) | |
PDO::NULL_EMPTY_STRING (integer) | |
PDO::NULL_TO_STRING (integer) | |
PDO::FETCH_ORI_NEXT (integer) | 在结果集中获取下一行;仅对可滚动游标有效 |
PDO::FETCH_ORI_PRIOR (integer) | 在结果集中获取上一行;仅对滚动游标有效 |
PDO::FETCH_ORI_FIRST (integer) | 在结果集中获取第一行;仅对滚动游标有效 |
PDO::FETCH_ORI_LAST (integer) | 在结果集中获取最后一行;仅对滚动游标有效 |
PDO::FETCH_ORI_ABS (integer) | 根据行号从结果集中获取需要的行;仅对可滚动游标有效 |
PDO::FETCH_ORI_REL (integer) | 根据当前游标位置的相对位置从结果集中获取需要的行;仅对可滚动游标有效 |
PDO::CURSOR_FWDONLY (integer) | 创建一个只进游标的PDOStatement对象;此为默认的游标选项,因为此游标最快且是PHP中最常用的数据访问模式 |
PDO::CURSOR_SCRPLL (integer) | 创建一个可滚动游标的PDOStatement对象;通过PDO::FETCH_ORI_*常量来控制结果集中获取的行 |
PDO::ERR_NONE (integer) | 对应SQLSTATE ‘00000’ ,表示SQL语句没有错误或警告地成功发出; 当用PDO::errorCode()或PDO::Statement::errorCode()来确定是否有错误发生时,此常量非常方便;在检查上述方法返回错误状态代码时候,经常会用到 |
PDO::PARAM_EVT_ALLOC (integer) | 分配事件 |
PDO::PARAM_EVT_FREE (integer) | 接触分配事件 |
PDO::PARAM_EVT_EXEC_PRE (integer) | 执行一条预处理语句之前出发的事件 |
PDO::PARAM_EVT_EXEC_POST (integer) | 执行一条预处理语句之后出发的事件 |
PDO::PARAM_EVT_FETCH_PRE (integer) | 从一个结果集中取出一条结果之前出发的事件 |
PDO::PARAM_EVT_FETCH_POST (integer) | 从一个结果集中取出一条结果之后出发的事件 |
PDO::PARAM_EVT_NORMALIZE (integer) | 在绑定参数注册允许驱动正常化变量名时出发事件 |
以上是关于利用PDO.so连接数据库的主要内容,如果未能解决你的问题,请参考以下文章