Questions tagged «pdo»

PDO(PHP数据对象)是PHP的数据访问抽象层(接口)。它适用于大多数数据库系统。

3
PDO的查询与执行
他们俩都做同一件事,只是做事不同吗? 除了使用prepare之间还有什么区别 $sth = $db->query("SELECT * FROM table"); $result = $sth->fetchAll(); 和 $sth = $db->prepare("SELECT * FROM table"); $sth->execute(); $result = $sth->fetchAll(); ?
129 php  pdo 

4
MySQL,MySQLi和PDO有什么区别?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 7年前关闭。 改善这个问题 MySQL,MySQLi和PDO有什么区别? 哪一个最适合与PHP-MySQL一起使用?
128 php  mysql  pdo  mysqli 


5
PDO关闭连接
与MySQLi相比,关于PDO只是一个相当简单的问题。 使用MySQLi,可以关闭连接: $this->connection->close(); 但是,对于PDO,它指出您使用以下方法打开连接: $this->connection = new PDO(); 但是要关闭连接,请将其设置为null。 $this->connection = null; 这是正确的吗,这实际上会释放PDO连接吗?(我知道它的设置是正确的null。)我的意思是,对于MySQLi,您必须调用一个函数(close)来关闭连接。PDO和= null断开一样容易吗?还是有关闭连接的功能?
120 php  pdo 

10
如何在LIMIT子句中应用bindValue方法?
这是我的代码的快照: $fetchPictures = $PDO->prepare("SELECT * FROM pictures WHERE album = :albumId ORDER BY id ASC LIMIT :skip, :max"); $fetchPictures->bindValue(':albumId', $_GET['albumid'], PDO::PARAM_INT); if(isset($_GET['skip'])) { $fetchPictures->bindValue(':skip', trim($_GET['skip']), PDO::PARAM_INT); } else { $fetchPictures->bindValue(':skip', 0, PDO::PARAM_INT); } $fetchPictures->bindValue(':max', $max, PDO::PARAM_INT); $fetchPictures->execute() or die(print_r($fetchPictures->errorInfo())); $pictures = $fetchPictures->fetchAll(PDO::FETCH_ASSOC); 我懂了 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在第1行的“ 15”,“ 15”附近使用正确的语法 似乎PDO会将单引号添加到SQL代码的LIMIT部分的变量中。我查了一下,发现这个与我相关的错误:http : //bugs.php.net/bug.php?id=44639 那是我在看的吗?自2008年4月以来,此错误已被打开!同时,我们应该做什么? …
117 php  mysql  sql  pdo  bindvalue 

7
PDO MySQL:是否使用PDO :: ATTR_EMULATE_PREPARES?
这是我到目前为止阅读的内容PDO::ATTR_EMULATE_PREPARES: 由于MySQL的本机准备绕过了查询缓存,因此PDO的准备仿真在性能上更好。 MySQL的本机准备更好地提高了安全性(防止SQL注入)。 MySQL的本机准备更好地用于错误报告。 我不知道这些陈述的真实性。在选择MySQL接口时,我最大的担心是防止SQL注入。第二个问题是性能。 我的应用程序当前使用过程MySQLi(没有准备好的语句),并且充分利用了查询缓存。它很少会在单个请求中重复使用准备好的语句。我开始使用PDO来获取命名参数和已准备好的语句的安全性。 我正在使用MySQL 5.1.61和PHP 5.3.2 我应该保持PDO::ATTR_EMULATE_PREPARES启用状态吗?有没有办法兼顾查询缓存的性能和准备好的语句的安全性?
117 php  mysql  pdo 

7
PHP PDO返回单行
更新2: 那么这是它可以获得的最优化的吗? $DBH = new PDO( "connection string goes here" ); $STH = $DBH -> prepare( "select figure from table1" ); $STH -> execute(); $result = $STH -> fetch(); echo $result ["figure"]; $DBH = null; 更新1: 我知道我可以为sql查询增加限制,但是我也想摆脱foreach循环,这不是我所需要的。 原始问题: 我有以下脚本,由于“ foreach”部分的缘故,它是从数据库返回许多行的良好IMO。 如果我知道我将永远只从数据库中获得1行,该如何优化它。如果我知道我只会从数据库中获得1行,我不明白为什么需要foreach循环,但是我不知道如何更改代码。 $DBH = new PDO( "connection string goes here" ); …
113 php  pdo 


4
我可以在PHP中混合使用MySQL API吗?
我已经搜查了网,到目前为止,我所看到的是,你可以使用mysql_和mysqli_共同意思是: <?php $con=mysqli_connect("localhost", "root" ,"" ,"mysql"); if( mysqli_connect_errno( $con ) ) { echo "failed to connect"; }else{ echo "connected"; } mysql_close($con); echo "Done"; ?> 要么 <?php $con=mysql_connect("localhost", "root" ,"" ,"mysql"); if( mysqli_connect_errno( $con ) ) { echo "failed to connect"; }else{ echo "connected"; } mysqli_close($con); echo "Done"; ?> 是有效的,但是当我使用此代码时,我得到的是: Connected …
106 php  mysql  pdo  mysqli 

9
如何使用PDO插入NULL值?
我正在使用此代码,但我感到无奈: try { $dbh = new PDO('mysql:dbname=' . DB . ';host=' . HOST, USER, PASS); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8'"); } catch(PDOException $e) { ... } $stmt = $dbh->prepare('INSERT INTO table(v1, v2, ...) VALUES(:v1, :v2, ...)'); $stmt->bindParam(':v1', PDO::PARAM_NULL); // --> Here's the problem PDO::PARAM_NULL, null, '', 它们全部失败并抛出此错误: 致命错误:无法在/ opt …
105 php  mysql  pdo  null  sql-insert 

6
在MySQL Linux服务器上安装PDO驱动程序
不久前,有人建议我更改代码以使用PDO,以便对查询进行参数化并将HTML安全地保存在数据库中。 好吧,这是主要问题: 我看了http://php.net/manual/en/ref.pdo-mysql.php,但我并没有真正知道应该把那个$ ./configure --with-pdo-mysql字符串放在哪里... 我正在构建的网站实际上只需要一页PDO。虽然我可能会考虑重新编写它,但是这需要一段时间,并且我需要页面尽快运行,因此无法完全关闭MySQL。如果我确实安装了PDO,是否仍可以使用mysql_*处理程序? 该服务器正在运行PHP版本5.4.6-1ubuntu1和Apache / 2.2.22(Ubuntu)。如果重要的话,我也正在运行phpMyAdmin数据库。
102 php  mysql  pdo  phpmyadmin  install 

7
PDO支持多个查询(PDO_MYSQL,PDO_MYSQLND)
我确实知道PDO不支持在一条语句中执行多个查询。我一直在Google搜索,发现很少有关于PDO_MYSQL和PDO_MYSQLND的帖子。 PDO_MySQL比其他任何传统MySQL应用程序都更加危险。传统的MySQL仅允许一个SQL查询。在PDO_MySQL中没有这种限制,但是您可能会被注入多个查询。 来自:使用PDO和Zend Framework防止SQL注入(2010年6月;朱利安(Julian)) 似乎PDO_MYSQL和PDO_MYSQLND确实提供了对多个查询的支持,但我无法找到有关它们的更多信息。这些项目被中止了吗?现在有什么方法可以使用PDO运行多个查询。
102 php  mysql  pdo 

2
清理用户密码
在对它们提供哈希值并将其存储在数据库中之前,应如何转义或清除用户提供的密码? 当PHP开发人员出于安全目的考虑对用户密码进行哈希处理时,他们通常会像对待其他任何用户提供的数据一样考虑这些密码。这个主题经常出现在与密码存储有关的PHP问题中。开发人员通常希望在散列密码并将其存储在数据库中之前使用诸如escape_string()(在各种迭代中)htmlspecialchars(),addslashes()和等功能清除密码。
98 php  sql  pdo  hash 

7
PDO mysql:如何知道插入是否成功
我正在使用PDO插入记录(mysql和php) $stmt->bindParam(':field1', $field1, PDO::PARAM_STR); $stmt->bindParam(':field2', $field2, PDO::PARAM_STR); $stmt->execute(); 有没有办法知道它是否成功插入,例如,是否由于重复而没有插入记录? 编辑:当然,我可以查看数据库,但是我的意思是程序反馈。
96 php  mysql  database  pdo 

4
如何正确设置PDO连接
我不时看到有关连接数据库的问题。 大多数答案不是我的方法,否则我可能只是无法正确获得答案。无论如何; 我从未考虑过,因为我的工作方式对我有效。 但是这里有个疯狂的想法;也许我做错了所有,如果是这样的话;我真的很想知道如何使用PHP和PDO正确连接到MySQL数据库并使其易于访问。 这是我的做法: 首先,这是我的文件结构(向下精简): public_html/ * index.php * initialize/ -- load.initialize.php -- configure.php -- sessions.php index.php 在最顶部,我有require('initialize/load.initialize.php');。 load.initialize.php # site configurations require('configure.php'); # connect to database require('root/somewhere/connect.php'); // this file is placed outside of public_html for better security. # include classes foreach (glob('assets/classes/*.class.php') as $class_filename){ include($class_filename); } # …
92 php  mysql  sql  class  pdo 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.