使用原生PHP来连接MySQL的方法有 MySQL库、MySQLi库以及PDO,由于PHP 7已经废除 MySQL库,所以建议使用MySQLi和PDO。
连接 MySQLi有两种风格:
面向对象风格(推荐)
过程化风格
面向对象风格:
<?php $mysqli = new mysqli('localhost', 'root', '123456', 'test_laravel'); if ($mysqli->connect_error) { die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); } $result = $mysqli->query('select * from articles'); $row = $result->fetch_array(MYSQLI_ASSOC); print_r($row); // 关闭mysql连接 $mysqli->close();
运行:
Array ( [id] => 1 [title] => My new title [body] => First Body [created_at] => 2017-05-22 11:10:20 [updated_at] => 2017-05-22 11:30:58 [published_at] => 2017-05-22 11:10:00 [excerpt] => )
fetch_array方法如果不带参数的话,则默认是MYSQLI _BOTH,输出是这样的:
( [0] => 1 [id] => 1 [1] => My new title [title] => My new title [2] => First Body [body] => First Body [3] => 2017-05-22 11:10:20 [created_at] => 2017-05-22 11:10:20 [4] => 2017-05-22 11:30:58 [updated_at] => 2017-05-22 11:30:58 [5] => 2017-05-22 11:10:00 [published_at] => 2017-05-22 11:10:00 [6] => [excerpt] => )
也可以选择MYSQLI _NUM
Array ( [0] => 1 [1] => My new title [2] => First Body [3] => 2017-05-22 11:10:20 [4] => 2017-05-22 11:30:58 [5] => 2017-05-22 11:10:00 [6] => )
一般来说,选择MySQLI _ASSOC
面向过程化风格:
<?php $mysqli = mysqli_connect('localhost', 'root', '123456', 'test_laravel'); if (mysqli_connect_error()) { die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); } $result = mysqli_query($mysqli, 'select * from articles'); $row = mysqli_fetch_array($result, MYSQLI_ASSOC); print_r($row); // 关闭mysql连接 mysqli_close($mysqli);
运行和上面一致。
使用PDO连接mysql:
<?php try { $PDO = new PDO('mysql:host=localhost;dbname=test_laravel', 'root', '123456'); $result = $PDO->query('select * from articles'); $row = $result->fetch(PDO::FETCH_ASSOC); print_r($row); // 关闭mysqi连接 $PDO = null; } catch (PDOException $e) { die('Connection failed: ' . $e->getMessage()); }
PDO的fetch方法不带参数的话,默认是:PDO::FETCH_BOTH,也可以PDO::FETCH_NUM和PDO::FETCH_ASSOC等,一般来说选择PDO::FETCH_ASSOC即可。
总结:使用PDO或者是MySQLi都是可以的,但网上更推荐使用PDO来连接数据库,这是因为PDO支持12种不同的数据库驱动程序,而MySQLi只能支持MySQL,另外PDO的性能也更高。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理