PHP连接MySQL

  • A+
所属分类:成长之路

PHP5及以上版本建议使用以下方式连接MySQL数据库:

  • MySQLi extension这里的i意为improved
  • PDO全称PHP Data Objects

在PHP早期版本中我们使用MySQL扩展,但该扩展在2012年开始不建议使用。

我该用MySQLi,还是PDO呢

如果你需要一个简短的回答,那就“习惯哪个就用哪个”

MySQLi和PDO有它们自己优势:PDO应用在12种不同数据库中,MySQLi只针对MySQL数据库。

所以,如果你的项目需在多种数据库中切换,建议用PDO,这样你只需要修改连接字符串和部分查询语句即可。如使用MySQLi,不同的数据库,需要重新编写所有代码,包括查询。

两者都是面向对象,但MySQLi提供了API接口。

两者都支持预处理语句。预处理语句可以防止SQL注入,对于web项目安全性是非常重要的。

MySQLi和PDO连接MySQL实例

我们用以下三种方式来演示PHP操作MySQL:

  • MySQLi面向对象的方式
  • MySQLi面向过程的方式
  • PDO的方式

MySQLi面向对象的方式:

  1. <?php
  2. $servername = "localhost";
  3. $username = "username";
  4. $password = "password";
  5. // 创建连接
  6. $conn = new mysqli($servername$username$password);
  7. // 检测连接
  8. if ($conn->connect_error) {
  9.     die("连接失败: " . $conn->connect_error);
  10. }
  11. echo "连接成功";
  12. ?>

注意在上面向对象的实例中$connect_error是在PHP5.2.9和5.3.0中添加的。如果你需要兼容更早版本请使用以下代码替换:

  1. // 检测连接
  2. if (mysqli_connect_error()) {
  3.     die("MySQL数据库连接失败: " . mysqli_connect_error());
  4. }

MySQLi面向过程的方式:

  1. <?php
  2. $servername = "localhost";
  3. $username = "username";
  4. $password = "password";
  5. // 创建连接
  6. $conn = mysqli_connect($servername$username$password);
  7. // 检测连接
  8. if (!$conn) {
  9.     die("Connection failed: " . mysqli_connect_error());
  10. }
  11. echo "连接成功";
  12. ?>

PDO的方式:

  1. <?php
  2. $servername = "localhost";
  3. $username = "username";
  4. $password = "password";
  5. try {
  6.     $conn = new PDO("mysql:host=$servername;"$username$password);
  7.     echo "连接成功";
  8. }
  9. catch(PDOException $e)
  10. {
  11.     echo $e->getMessage();
  12. }
  13. ?>

注意在以上PDO实例中我们已经指定了数据库myDB。PDO在连接过程需要设置数据库名。如果没有指定,则会抛出异常。

关闭连接

MySQLi面向对象的方式:

  1. $conn->close();

MySQLi面向过程的方式:

  1. mysqli_close($conn);

PDO的方式:

  1. $conn = null;
  • 问答中心
  • 微信小程序扫一扫
  • weinxin
  • 微信公众
  • 微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:27   其中:访客  27   博主  0

    • avatar from this source

      I am curious to find out what blog platform you’re using? I’m experiencing some small security issues with my latest website and I would like to find something more safe. Do you have any recommendations?

      • avatar Online Viagra

        Leading Online Pharmacy – Contact us at +1 (917) 259-3352 for unbelievable rates, discount and offers on any medicine. Get it delivered free of cost at your door steps, call us today. Phone : +1 (917) 259-3352

        • avatar find info

          You made some decent points there. I did a search on the subject matter and found most guys will consent with your website.

          • avatar Bookkeeping Services Near Me

            Hi, I do believe this is a great website. I stumbledupon it ;) I will return once again since i have book-marked it. Money and freedom is the best way to change, may you be rich and continue to guide others.

            • avatar franchise

              Some really nice stuff on this site, I like it.

              • avatar visit site

                Magnificent website. Lots of helpful info here. I am sending it to a few buddies ans also sharing in delicious. And naturally, thanks on your sweat!

                • avatar click here for info

                  I haven?¦t checked in here for some time because I thought it was getting boring, but the last several posts are good quality so I guess I?¦ll add you back to my everyday bloglist. You deserve it my friend :)