今天才稍了解了php和mysql之间的连接,以前搭建LNMP时只关注nginx解析php了,趁热抓紧学习了一下,写下来,为了和我一样迷茫的朋友; ------- 小 Q
1、连接的三种方法及异同;
2、三种方式连接实例;
3、查看你的php支持了哪个模块;(编译某个模块)
------------------------------------------------------------------------------------------------------
1、连接的三种方法及异同;
现在php版本已到7+版本了,而5以上的版本就建议用以下方法了,我用的下图方法所以就连接不上
MySQLi (面向对象)
MySQLi (面向过程)
PDO
PDO可以应用在12中数据库中,应用及广;而mysqli只支持mysql,但MySQLi是支持提供api接口的
两者都是有面对对象的说,而且都支持预处理,很好的防止sql注入。
2、三种方式连接:
MySQLi(面向过程)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = mysqli_connect($servername, $username, $password); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } echo "连接成功"; ?>
手动关闭连接方式:mysqli_close($conn);
(连接在脚本执行完后会自动关闭。你也可以使用以下代码来关闭连接)
MySQLi(面向对象)
<?php $servername = "localhost"; $username = "username"; $password = "password"; // 创建连接 $conn = new mysqli($servername, $username, $password); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } echo "连接成功"; ?>
手动关闭连接:$conn->close();
PDO
<?php $servername = "localhost"; $username = "username"; $password = "password"; try { $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password); echo "连接成功"; } catch(PDOException $e) { echo $e->getMessage(); } ?> //关闭连接 $conn = null;
3、查看你的php支持了哪个模块;(编译某个模块)
命令: /php路径/bin/php -m
或者 : <?php phpinfo(); ?>
如果两个都没有,就去php解压包中编译,举例编译mysqli:
cd /downloads/php-7.0.9/ext(这是我的解压包路径)
cd mysqli(所需模块目录)
/usr/local/php/bin/pnpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
vim /usr/local/php/etc/php.ini
加入: extension=mysqli.so
然后重启php即可
同理所有php模块加载方式都大同小异。