本文目录一览:
PHP7连接mysql数据库方法
- 用
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
原因:
PHP5中使用 mysql_connect()
函数进行连接,但实际上,PHP5.5开始,MySQL就不推荐使用了,属于废弃函数。
PHP7中已经彻底不支持了,取而代之的是如下两个扩展:
- MySQLi
- PDO_MySQL 替代函数如下:
mysqli_connect()
PDO::__construct()
使用时,不要再使用mysql_connect
,可以换用mysqli_connect()
,用法基本类似,据说是面向对象的库。 在php.ini
中,也只有extension=php_mysqli.dll
,而不再有extension=php_mysql.dll
这个拓展了。
- 可以使用
mysqli
,对象化,方法名与被废弃的类似:
$conn = mysqli_connect('localhost','xueyanxiang','xueyanxiang');
- 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支持Mysql扩展功能
PHP7 正式移除了 mysql
扩展。
目前可以使用:
mysqlnd
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);
PHP7.0打开扩展功能要怎样才能和mysql相连?
步骤如下:
- 进入 PHP 源码中的
ext/mysql
目录下。 - 在当前目录下运行
phpize
命令:
/usr/local/php524/bin/phpize
- 运行生成的
configure
文件:
./configure --with-php-config=/usr/local/php524/bin/php-config --with-mysql=/usr/local/mysql/
注意:
--with-mysql
参数用于指定 MySQL 客户端的位置,这样才能生成mysql.so
。
- 编译生成
.so
文件。 - 配置 PHP 引擎加载该扩展:
修改
php.ini
文件,加载mysql.so
扩展(确保该文件放在 PHP 指定的扩展目录下)。 - 测试 PHP 引擎是否成功加载该扩展:
创建
phpinfo.php
文件,内容如下:
运行后可以看到如下信息:<?php echo phpinfo(); ?>
MySQL Support enabled Active Persistent Links 0 Active Links 0 Client API version 5.1.55 MYSQL_MODULE_TYPE no value MYSQL_SOCKET /tmp/mysql.sock MYSQL_INCLUDE no value MYSQL_LIBS no value
- 编写 PHP 代码测试是否能连接 MySQL。 补充说明:
- 为什么书中一般是先安装 MySQL,再安装 PHP?
因为安装 PHP 时需要提供 MySQL 的路径,由 PHP 帮助编译生成
mysql.so
模块。如果先安装 PHP,后安装 MySQL,可以通过phpize
工具生成mysql.so
。 - 实践生成
mysql.so
的过程: 需要用到 PHP 的源码包,通过源码包中提供的phpize
工具来挂接 PHP 扩展。
win10 php7 怎么弄mysql扩展
非常遗憾地告诉你,PHP7 不再支持 MySQL 扩展了,只能使用 mysqli
和 pdo
扩展。
在 php.ini
中取消以下两行前面的分号以启用扩展:
extension=php_mysqli.dll
extension=php_pdo_mysql.dll