扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
1、用 mysql_connect 的方法,PHP7会报致命错误
创新互联建站-专业网站定制、快速模板网站建设、高性价比文昌网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式文昌网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖文昌地区。费用合理售后完善,十年实体公司更值得信赖。
$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);
不填写参数的话,默认是关联和索引都有,如下图
这种情况说明你的第一个参数错误,就是得到的不是数据库资源。
你需要使用$row = mysql_fetch_row($res)来判断资源是否存在,这样就不会报错。
这种错误一般就是我们常说的空引用,就是数据都不存在,你就调用数据的方法就会出问题。
一、常用普通方法
$mysql_server="localhost";
$mysql_username="数据库用户名";
$mysql_password="数据库密码";
$mysql_database="数据库名";
//建立数据库链接
$conn = mysql_connect($mysql_server,$mysql_username,$mysql_password) or die("数据库链接错误");
//选择某个数据库
mysql_select_db($mysql_database,$conn);
mysql_query("set names 'utf8'");
//执行MySQL语句
$result=mysql_query("SELECT id,name FROM 数据库表");
//提取数据
$row=mysql_fetch_row($result);
在提取数据的时候,我们使用mysql_fetch_row,还可以使用mysql_fetch_assoc和mysql_fetch_array,具体的我们参考手册。
第二、面向对象方法
$db=new mysqli($dbhost,$username,$userpass,$dbdatabase);
if(mysqli_connect_error()){
echo 'Could not connect to database.';
exit;
}
$result=$db-query("SELECT id,name FROM user");
$row=$result-fetch_row();
第三、PDO方法
$dsn='mysql:host='.$dbhost.';dbname='.$dbdatabase.';'
$dbh=new PDO($dsn,$username,$userpass);$stmt=$dbh-query('SELECT id,name FROM user');
$row=$stmt-fetch();
推荐第三种连接方式
首先你可以把链接失败的错误编码或者错误代码展示出来,然后根据错误编码去手册上面找对应编码错误的原因及解决的办法。
没找到函数mysql_connect(),没有开启mysql扩展,或者PHP版本在7以上,不支持mysql扩展了。
恕我直言,每次看到有人用mysql_connect,我都想吐槽,php5.3以后,这个方法就淘汰了,php7以后就不再支持了。
建议使用pdo或mysqli扩展,然后换最新的教程,学学PHP7
是的 在WAMP这是 配置扩展的开启选项 你需要在Apache 里面的这一行开启 ,并设置路径跟你php里面的一样,同时需要把 mysql.dll ,mysqli.dll 开启
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流