在我们的位置,我们将使用mysqli和PDO分为准备语句和事务支持之类的东西.有些项目使用一个,另一个项目.我们很难有可能转移到另一个RDBMS.
我更喜欢PDO,因为它允许为预准备语句提供命名参数,据我所知,mysqli没有.
在我们整合项目时只使用一种方法,是否还有其他优点和缺点选择其中一种作为标准?
我一直在阅读有关使用mysqli与pdo在php中使用mysql的一些问题.
我见过诸如mysqli或PDO之类的问题 - 有什么优缺点?或者从mysql迁移到mysqli或pdo?,两者都专门处理mysqli v pdo.我对这两种方法中的哪一种更好更感兴趣.
我想知道为什么应该避免mysql_函数.当然,他们正在按照PHP的文档http://php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated弃用,PHP PDO和MySQLi的线程 建议PDO和MySQLi更强大,线程MySQL,MySQLi和PDO有什么区别?暗示这些新方法更安全.
总的来说,我想知道mysql_方法的主要缺点是什么,以及避免它的原因(我猜更具体而不仅仅是因为它已被弃用).我打算更新受影响的脚本,并对这个旧方法被弃用的原因感到好奇.
谢谢!
我是PHP的新手,并使用标准的MySQL数据库调用构建了一个中型网站.但是,我最近了解了PDO,我希望从社区中了解是否值得从MySQL切换到PDO.为了安全起见,我一直在使用mysql_real_escape_string
.
关于网站的信息:
我正在使用混合INSERT
和SELECT
通话.从SELECT
调用返回的数据量不大(使用时返回的记录不超过30条LIMIT
).也不会有很多INSERT
s.该网站目前尚未上线,因此现在进行更改很容易.
在您的专业意见中,是否值得花时间将站点从MySQL切换到PDO?或者和MySQL一样好吗?或者换句话说,现在切换到PDO的原因是什么?
因为我的陈述是这样的
"SELECT * FROM `box` WHERE `thing` = '{$variable}'
Run Code Online (Sandbox Code Playgroud)
我可以简单地清理它
$variable = str_replace("'","\'",$variable);
"SELECT * FROM `box` WHERE `thing` = '{$variable}'
Run Code Online (Sandbox Code Playgroud)
那会有用吗?我的主机不支持mysql转义,我不使用mysqli.
几天前我开始学习编码,我遇到了一些mysql_real_escape_string的问题,特别是login.php.
错误消息:
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'elegant'@'localhost' (using password: NO) in /home/elegant/public_html/php/login.php on line 3
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/elegant/public_html/php/login.php on line 3
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'elegant'@'localhost' (using password: NO) in /home/elegant/public_html/php/login.php on line 4
Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /home/elegant/public_html/php/login.php on line 4
Please enter a username and a password
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止的代码 - 这段代码在localhost中工作但是一旦我把它放在网上并导入了数据库表,它就给了我一些问题:
<?php
$username …
Run Code Online (Sandbox Code Playgroud)