本文目录一览:
- 1、PHP7连接mysql数据库方法
- 2、PHP7安装intl扩展和linux安装icu
- 3、如何使PHP7支持Mysql扩展功能
- 4、mysql_select_db被废除后在php7用什么?
- 5、如何让typecho支持PHP7
- 6、PHP已经有7了 但我找的视频时PHP5会有影响吗 PHP7兼容5吗
PHP7连接mysql数据库方法
1、用 mysql_connect 的方法,PHP7会报致命错误
$conn= mysql_connect('localhost','xueyanxiang','xueyanxiang');
Fatal error : Uncaught Error: Call to undefined function mysql_connect() in /Users/xueyanxiang/work/test/xue.php:31 Stack trace: #0 /Users/xueyanxiang/work/test/xue.php(119): xue-run() #1 {main} thrown in /Users/xueyanxiang/work/test/xue.php on line 31 -php7支持pdo吗
原因是:
PHP5中使用mysql_connect()函数进行连接,但实际上,PHP5.5开始,MySQL就不推荐使用了,属于废弃函数
PHP7中貌似已经彻底不支持了,根据官网说明,取而代之的是如下两个:
本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之。参见 MySQL:选择
API 指南以及相关 FAQ 以获取更多信息。用以替代本函数的有:
mysqli_connect()
PDO::__construct()
使用时,不要在使用mysql_connect了,可以换用mysqli_connect(),用法基本类似吧,据说是面向对象的库。
php.ini中,也只有extension=php_mysqli.dll,而不再有extension=php_mysql.dll这个拓展了。
2、可以使用mysqli,对象化,方法名与被废弃的类似
$conn= mysqli_connect('localhost','xueyanxiang','xueyanxiang');
3、PDO工具,推荐使用
$dbh= "mysql:host=localhost;dbname=test";
$db= new PDO($dbh,'xueyanxiang','xueyanxiang');
$objQuery= $db-query("select * from user;");
$res= $objQuery-fetchAll(PDO::FETCH_ASSOC);
不填写参数的话,默认是关联和索引都有,如下图
PHP7安装intl扩展和linux安装icu
一 PHP intl 是国际化扩展,是ICU 库的一个包装器。所以在安装PHP intl扩展前要先安装ICU库,安装ICU库的具体步骤::
二 安装intl扩展
1:进入php7.2.5源码:
2:运行:phpize ,找不到命令时,将路径补全:/usr/local/php7/bin/phpize(是php的安装路径),出现如下:
Configuring for:
PHP Api Version: 20100412
Zend Module Api No: 20100525
Zend Extension Api No: 220100525
3:运行配置
./configure --enable-intl --with-icu-dir=/usr/local/icu/ --with-php-config=/usr/local/php7/bin/php-config-php7支持pdo吗
注:前面路径为icu的安装路径,后面路径为php的安装路径。
4:编译扩展:make
5:复制扩展到目标文件夹
cp /user/local/php/php7.2.5/ext/intl/modules/intl.so /user/local/php7/lib/php/extensions/no-debug-non-zts-20170718-php7支持pdo吗
注意:也可以find / -name intl.so 查找。
6:设置扩展加入配置文件中:
[intl]
extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/"
extension=intl.so
大坑:::采用phpinfo()时,无法找到配置的intl扩展,说明配置没有生效。。。。。。
原因:在编译php时没有 --with-config-file-path=PATH 指定php.ini路径,默认的路径为/usr/local/php7/lib,只需要将php.ini放入这个默认的路径即可。你也可以安装配置php时加入,如下:-php7支持pdo吗
./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath -enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-pcntl --with-curl --with-fpm-user=nginx --enable-ftp --enable-session --enable-xml --with-apxs2=/usr/bin/apxs-php7支持pdo吗
访问:index.php中phpinfo()文件。
如何使PHP7支持Mysql扩展功能
PHP7 正式移除了 mysql 扩展
目前可以使用mysqlnd和mysql mysqli pdo_mysql
关系打比方说 mysqlnd是金属,而mysql mysqli pdo_mysql只是金属制品而已
使用PDO连接mysql的格式:
$pdo = new PDO('mysql:host=localhost;dbname=database_name;port=3306','用户名','密码');
$pdo-exec('set names utf8');
$stmt = $pdo-prepare("select * from table where id =:id");
$stmt-bindValue(':id',1,PDO::PARAM_INT);
$stmt-execute();
$rows = $stmt-fetchAll(PDO::FETCH_ASSOC);
$rows = $pdo-query("select * from table where id = 1")-fetchAll(PDO::FETCH_ASSOC);
mysql_select_db被废除后在php7用什么?
不仅仅是mysql_select_db,整个mysql扩展都被废除了
推荐使用mysqli扩展或PDO扩展操作数据库。
mysqli和mysql比较相似,改以前的源码比较方便。
PDO可以支持几乎所有主流数据库,如果你只是用mysql数据库,那用mysqli还是用PDO都可以。
如何让typecho支持PHP7
typecho 默认是不支持 PHP7 的,所以需要将 Typecho 的数据库引擎修改为 pdo_mysql
修改 config.inc.php 文件中的
$db = new Typecho_Db('Mysql', 'typecho_');
改为:
$db = new Typecho_Db('Pdo_Mysql', 'typecho_');
将 mysql 换成 pdo mysql 驱动即可。
PHP已经有7了 但我找的视频时PHP5会有影响吗 PHP7兼容5吗
最大的影响就是php7不在支持mysql扩展,只支持mysqli和pdo,说白了就是强制性废弃面向过程的连接数据库方法。其他影响不大。少量函数有所废弃,一般也用不到。