重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
PHP 5 的使用者可以使用 mysql extension,mysqli 和 PDO_MYSQL 。PHP 7移除了mysql extension,只剩下后面两种选择.
创新互联是一家集网站建设,浦北企业网站建设,浦北品牌网站建设,网站定制,浦北网站建设报价,网络营销,网络优化,浦北网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
/*
* mysqli
* 数据库地址,登陆账号,密码,数据库名称
*/
$mysqli = new mysqli("localhost", "root", "", "student");
$sql = "SELECT * FROM tb_user";
$result = $mysqli-query($sql);
$row = $result-fetch_assoc(); // 从结果集中取得一行作为关联数组
echo $row["password"];
/* free result set */
$result-free();
/* close connection */
$mysqli-close();
/*
* 第一个参数是mysql:host,第二是dbname,第三个账户名,第四个密码
*/
try {
$pdo = new PDO("mysql:host=localhost;dbname=student", "root", "");
} catch (PDOException $e) {
echo 'Connection failed: ' . $e-getMessage();
}
$sql = "select * from tb_user";
echo $sql . "BR";
$pdo-query('set names utf8;');
$result = $pdo-query($sql);
$rows = $result-fetchAll();
foreach ($rows as $row) {
$username = $row[1];
$pwd = $row[2];
echo $username;
}
是的 在WAMP这是 配置扩展的开启选项 你需要在Apache 里面的这一行开启 ,并设置路径跟你php里面的一样,同时需要把 mysql.dll ,mysqli.dll 开启
第一步:进入php源码中的"ext/mysql"目录下
第二步:在当前目录下运行phpize命令:/usr/local/php524/bin/phpize
phpize的规则:去哪个目录下运行phpize文件,那么就会在该目录下生成一个configure文件。
第三步:运行刚才生成的configure文件
命令: ./configure --with-php-config=/usr/local/php524/bin/php-config --with-mysql=/usr/local/mysql/
这里最关键的是通过--with-mysql参数告诉mysql客户端的位置。这样才能生成mysql.so。
实验的时候,没有加这个参数,结果错误:
./configure --with-php-config=/usr/local/php524/bin/php-config
第四步:编译生成.so文件
第五步:配置php引擎加载该扩展。
补充一下:就是去php.ini文件中修改一下配置,加载mysql.so这个扩展(这个扩展文件要放到php指定的扩展目录下面去)
第六步:测试php引擎是否成功加载该扩展编写文件phpinfo.php,内容是:?php ehco phpinfo(); ?
运行后,可以看到有如下信息显示:mysqlMySQLSupport enabledActive PersistentLinks 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.so扩展。
第七步:已经生成的mysql.so。编写php代码测试是否能连接mysql。
一、为什么书中一般是常常是这样的顺序安装。
先安装mysql,然后再安装php,很少看到先安装php,后安装mysql?
这样做。是基于下面原因:安装好mysql后。mysql.so这个模块才能生成。记得一个细节:在安装php的时候,需要提供mysql的路径。由php帮助编译生成mysql.so模块。mysql.so这个模块是在安装好php的时候生成的。
生成这个模块需要用到一个东西:mysql客户端。如果先安装php,后安装mysql。那么无法按照原来的方式(由php帮助生成mysql.so模块)挂接mysql.so。通过实践,发现使用phpize工具生成mysql.so可以解决这个问题。
二、实践生成mysql.so的过程。
大体思路:需要用到php的源码包才行。通过源码包中提供的phpize文件(一个专门挂接php扩展的工具)
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
原因是:
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);
不填写参数的话,默认是关联和索引都有,如下图
要成功连接数据库必须要知道数据库名、用户名和密码这些信息。数据库名顾名思意就是数据库的名字,可以登陆数据库查看。如果没有需要自己手动建立一个数据库,登陆数据库之后首页的左边就有所有存在的数据库的列表。数据库用户和数据库密码就是你登陆数据库时所使用的用户名和密码。数据库主机一般填写localhost就好了,不用改。如果只安装一个织梦系统数据表前缀最好也不要修改,默认就好。至于你的数据库的登陆地址和以上需要的这些信息我就不知道了,需要你到你空间的控制面板中查看,一般里面都会写明的。
Windows系统下加载模块
步骤:
1) 下载apache的windows版本并安装,同时修改httpd.conf;
2) 下载php并安装;
3) 安装DM DBMS,拷贝bin目录下php4_dm.dll、php5_dm.dll到php目录下的extensions目录中,修改php.ini,添加extension=php5_dm.dll (如果php安装的是php4版本,则改为extension=php4_dm.dll),添加php.ini中有关连接的配置;
4) 重启apache服务器,在浏览器中输入http:\\localhost\php_info.php查看是否有dm模块项,如有说明加载DM PHP成功。
?php
/* 连接选择数据库*/
$link = dm_connect("localhost", "SYSDBA", "SYSDBA")
or die("Could not connect : " . dm_error());
print "Connected successfully";
/* 执行SQL 查询*/
$query = " INSERT INTO production.product(name,author,publisher,publishtime, product_subcategoryid,productno,satetystocklevel,originalprice,nowprice, discount,description,photo,sellstarttime)
VALUES('三国演义','罗贯中','中华书局','2005-04-01','4','9787101046121','10', '19.0000','15.2000','8.0','《三国演义》是中国第一部长篇章回体小说!',null,'2006-03-20')"; $result = dm_query($query)
or die("Query failed : " . dm_error());
/* 释放资源*/
dm_free_result($result);
/* 断开连接*/
dm_close($link);
?
以上来自官方文档!