您的位置:

pdo读取mysql数据库(PD数据库)

本文目录一览:

PHP中用PDO向Mysql里输入数据

PDO配置。打开php.ini配置文件,找到下图所示的配置信息,去掉要启用的PDO前面的“#”号即可。另外一种方式是直接在启动的wampserver中找到php扩展中的php_pdo_db.lib选项,重启wampserver服务器即可。

如何利用PDO连接数据库。利用下面这条简单的语句即可连接数据库

$pdo = newPDO("mysql:host=localhost;dbname=php100","root",“ ");

其中具体参数介绍如下图所示:

PDO中常用的函数及其解释如下。

PDO::query()主要是用于有记录结果返回的操作,特别是SELECT操作

PDO::exec()主要是针对没有结果集合返回的操作,如INSERT、UPDATE等操作

PDO::lastInsertId() 返回上次插入操作,主键列类型是自增的最后的自增ID

PDOStatement::fetch()是用来获取一条记录

PDOStatement::fetchAll()是获取所有记录集到一个中

下面通过一个简单的php代码示例来具体介绍如何使用PDO进行数据库操作。

?php

//连接数据库

$pdo = new PDO("mysql:host=localhost; dbname=member", "root","");

//在表user_list中插入数据

$pdo-exec("insert into user_list(uid, m_id, username, password) values(null,'3','testpdo','testpdo')");

//使用查询语句

$sr = $pdo-query("select * from user_list");

//将查询的结果循环输出显示

while($row=$sr-fetch()){

print_r($row);

}

?

如何使用PDO查询Mysql来避免SQL注入风险

我把问题和赞同最多的答题翻译了下来。提问:如果用户的输入能直接插入到SQL语句中,那么这个应用就易收到SQL注入的攻击,举个例子:$unsafe_variable = $_POST['user_input']; mysqli_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')");用户可以输入诸如 : value'); DROP TABLE table;-- ,SQL语句就变成这样了:INSERT INTO table (column) VALUES('value'); DROP TABLE table;--')(译者注:这样做的结果就是把table表给删掉了) 我们可以做什么去阻止这种情况呢?回答:使用prepared statements(预处理语句)和参数化的查询。这些SQL语句被发送到数据库服务器,它的参数全都会被单独解析。使用这种方式,攻击者想注入恶意的SQL是不可能的。要实现这个主要有两种方式:1. 使用 PDO:$stmt = $pdo-prepare('SELECT * FROM employees WHERE name = :name'); $stmt-execute(array(':name' = $name)); foreach ($stmt as $row) { // do something with $row }2. 使用 Mysqli:$stmt = $dbConnection-prepare('SELECT * FROM employees WHERE name = ?'); $stmt-bind_param('s', $name); $stmt-execute(); $result = $stmt-get_result(); while ($row = $result-fetch_assoc()) { // do something with $row }PDO需要注意的是使用PDO去访问MySQL数据库时,真正的prepared statements默认情况下是不使用的。为了解决这个问题,你需要禁用模拟的prepared statements。下面是使用PDO创建一个连接的例子:$dbConnection = new PDO('mysql:dbname=dbtest;host=127.0.0.1;charset=utf8', 'user', 'pass'); $dbConnection-setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $dbConnection-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);上面的例子中,错误报告模式并不是强制和必须的,但建议你还是添加它。通过这种方式,脚本在出问题的时候不会被一个致命错误终止,而是抛出PDO Exceptions,这就给了开发者机会去捕获这个错误。然而第一行的 setAttribute() 是强制性的,它使得PDO禁用模拟的prepared statements并使用真正的prepared statements。这可以确保这些语句和值在被发送到MySQL服务器之前不会被PHP解析(这使得攻击者没有注入恶意SQL的机会)。尽管你可以使用可选的构造函数参数去设置 charset ,但重点需要注意的是小于5.3.6的PHP版本,DSN(Data Source Name)是默认忽略 charset 参数的。说明当你传一个SQL语句做预处理时会发生什么?它被数据库服务器解析和编译了。通过指定参数(通过之前例子中的 ? 或者像 :name 这样的命名式参数)你告诉数据库引擎你是想过滤它。接着当你调用 execute() 函数时,prepared statements会和你刚才指定的参数的值结合。在此重要的是,参数的值是和编译过的语句结合,而非一个SQL字符串。SQL注入就是当创建被发送到数据库的SQL语句时,通过欺骗的手段让脚本去引入恶意的字符串。因此当你使用单独的参数发送真实正确的SQL时,你就限制了被某些不是你真实意图的事情而搞挂掉的风险。使用prepared statements 传递的任何参数都会被当做字符串对待(不过数据库引擎可能会做一些优化,这些参数最终也可能变成numbers)(译者注:意思就是把参数当做一个字符串而不会去做额外的行为)。比如在上面的例子中,如果 $name 变量的值是 'Sarah'; DELETE * FROM employees ,产生的结果是会去搜索"'Sarah'; DELETE * FROM employees"这一整个字符串,最终的结果你也就不会面对的是一张空表了。使用prepared statements的另一个好处是,如果你在同一session中再次执行相同的语句,也就不会被再次解析和编译,这样你就获得一些速度上的提升。

PHP如何读取MYSQL数据库的字段内容然后返回该行所有内容?

PHP 版本 = 5.2 的常用连接方法为

$link = mysql_connect('mysql地址/localhost','root','root密码');

mysql_select_db('db1');    //选择一个数据库

mysql_query('set names utf8');    // 设置下数据库默认编码,避免写入/读取乱码

$res = mysql_query('select * from user');    // 执行sql 语句

$rows = array();

while($row = mysql_fetch_array($res)){

    $rows[] = $row;    // 循环 resouce 数据得到数组数据集合

}

print_r($rows);    // 最后一步输出数据列表

PHP 版本 = 5.3 的常用连接方法为PDO形式,当然也可以使用5.2的连接方法。(PDO需开启 php_pdo_mysql 扩展)

$pdo = new PDO('mysql:host=地址/localhost;dbname=数据库名','root','root密码');

$pdo-exec('set names utf8');

$res = $pdo-query('select * from user');

$rows = array();

while($row = $res-fetch()){

$rows[] = $row;

}

print_r($rows);

大家学习php途中,建议使用5.3 版本以上以获得更好的php编程体验。

所以推荐pdo形式连接数据库,更安全快速。

如何用pdo读取数据生成静态页面

工具/原料

电脑

WAMPServer(Window+Apache+MySQL+PHP集成开发环境,大家可以在网上下载)

方法/步骤

PDO配置。打开php.ini配置文件,找到下图所示的配置信息,去掉要启用的PDO前面的“#”号即可。另外一种方式是直接在启动的wampserver中找到php扩展中的php_pdo_db.lib选项,重启wampserver服务器即可。

如何利用PDO连接数据库。利用下面这条简单的语句即可连接数据库

$pdo = newPDO("mysql:host=localhost;dbname=php100","root",“ ");

其中具体参数介绍如下图所示:

PDO中常用的函数及其解释如下。

PDO::query()主要是用于有记录结果返回的操作,特别是SELECT操作

PDO::exec()主要是针对没有结果集合返回的操作,如INSERT、UPDATE等操作

PDO::lastInsertId() 返回上次插入操作,主键列类型是自增的最后的自增ID

PDOStatement::fetch()是用来获取一条记录

PDOStatement::fetchAll()是获取所有记录集到一个中

下面通过一个简单的php代码示例来具体介绍如何使用PDO进行数据库操作。

?php

//连接数据库

$pdo = new PDO("mysql:host=localhost; dbname=member", "root","");

//在表user_list中插入数据

$pdo-exec("insert into user_list(uid, m_id, username, password) values(null,'3','testpdo','testpdo')");

//使用查询语句

$sr = $pdo-query("select * from user_list");

//将查询的结果循环输出显示

while($row=$sr-fetch()){

print_r($row);

}

?

使用pdo连接mysql数据库

看看是否支持pdo,因为默认的错误如果不显示的话,就靠返回错误只能得到这个,pdo还是需要pdo_mysql来支持的。