PHP
发布时间:2022-04-04 发布网站:大佬教程 code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php-有关PDO和MySQL最佳做法的问题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_
489_0@我对PDO有很多疑问…
@H_
489_0@>是否应该仅在有要绑定的参数时才使用prepare()?当我需
要做一个简单的
查询,例如…时,@R_559_10
675@用query()吗?
>当我执行更新和
删除操作并需要
获取受影响的行数时,应该使用exec()还是应该使用PDOStatement-> rowCount()代替?
>当我进行插入,更新和
删除操作时,还是在需要进行其他选择时仅使用
SELEct时,应该使用close
cursor?
> $con = NULL吗?真的
关闭了连接?
>将bindParam与foreach结合使用是否可以很好地插入多个插入点?我的意思是
性能明智,因为我认为在同一插入上执行(…),(…)更好吗?
>您可以在使用
PHP PDO
MysqL时向我提供有关
性能点的更多信息(URL)吗?如果有人有其他
提示,那将非常有用.
解决方法:
@H_
489_0@>当我在Zend Framework 1.0中开发DB层时,
默认情况下使它对所有
查询使用prepare / execute.这样做没有什么坏处.*
PHP方面有一些开销,而
MysqL方面有
prepared queries are actually faster.
>我的做法是对所有类型的
查询使用query(),并在更新后
调用rowCount().您也可以致电
SELECT
ROW_COUNT()
.
>如果您有结果集中的待处理行或多结果集
查询中的待处理结果集,则Close
cursor在
MysqL中很有用.使用INSERT,
updatE,
deletE时没有必要.
> PDO_
MysqL测试套件使用$con = NULL
关闭连接,这是正确的
方法.这实际上不会
关闭由lib
MysqLnd管理的持久连接,但这是有意的.
>一次执行一条准备好的INSERT语句的速度不及执行带有多个
元组的单个INSERT的速度.但是差异很小.如果要插入大量行,并且
性能很重要,则应使用
LOAD DATA LOCAL INFILE
.有关其他
提示,请参见
http://dev.mysql.com/doc/refman/5.6/en/insert-speed.html.
>您可以通过Google
搜索“ PDO
MysqL基准”(
例如)来找到各种结果.但最重要的是,选择PDO v
s. MysqLi没有明显的胜利者.与其他更重要的优化技术(例如
choosing the right indexes)相比,差异很小,以至于它减小了,确保索引适合RAM,并巧妙地使用了应用程序端缓存.
@H_
489_0@*有些语句不能在
MysqL中作为预备语句运行,但是在每个主要发行版中,此类语句的列表会变小.如果您仍在使用无法通过prepare()运行某些语句的旧版
MysqL,那么您应该
在数年前升级!
@H_
489_0@发表您的
评论:
@H_
489_0@是的,在大多数情况下,使用
查询参数(例如使用
bindValue()和@L_
607_43@)被认为是抵御
sql注入的最佳
方法.
@H_
489_0@请注意,在PDO中使用
查询参数是一种更简单的
方法-您只需将数组传递给execute(),这样就不必麻烦bindValue()或bind@R_912_1@R_
419_2481@@了:
@H_
489_0@
$sql = "SELECT * FROM myTable WHERE name = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute( array("Bill") );
@H_
489_0@您还可以通过以下方式使用命名参数:
@H_
489_0@
$sql = "SELECT * FROM myTable WHERE name = :name";
$stmt = $pdo->prepare($sql);
$stmt->execute( array(":name" => "Bill") );
@H_
489_0@使用
quote()然后将结果插值到
查询中也是防止
sql注入的一种好
方法,但是IMHO使
代码更难阅读和维护,因为您总是想弄清楚是否已
关闭引号并加了点在正确的地方.使用参数占位符然后传递参数要容易得多.
@H_
489_0@在我的演讲
SQL Injection Myths and Fallacies中,您可以阅读有关
sql注入防御的更多信息.
大佬总结
以上是大佬教程为你收集整理的php-有关PDO和MySQL最佳做法的问题全部内容,希望文章能够帮你解决php-有关PDO和MySQL最佳做法的问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。