PHP7联接mysql数据库方式
1、用mysql_connect的方式,PHP7会报致命错误
$conn=mysql_connect('localhost','xueyanxiang','xueyanxiang');
Fatalerror:UncaughtError:Calltoundefinedfunctionmysql_connect()in/Users/xueyanxiang/work/test/xue.php:31Stacktrace:#0/Users/xueyanxiang/work/test/xue.php(119):xue-run()#1{main}thrownin/Users/xueyanxiang/work/test/xue.phponline31
缘由是:
PHP5中使用mysql_connect()函数进行联接,但实际上,PHP5.5开始,MySQL就不推荐使用了,属于废弃函数
PHP7中其实早已彻底不支持了,依照官网说明,取而代之的是如下两个:
本扩充自PHP5.5.0起已废弃,并在将来会被移除。应使用MySQLi或PDO_MySQL扩充来替换之。参见MySQL:选择
API手册以及相关FAQ以获取更多信息。用以取代本函数的有:
mysqli_connect()
PDO::__construct()
使用时,不要在使用mysql_connect了,可以换用mysqli_connect(),用法基本类似吧linux系统装win7,听说是面向对象的库。
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=newPDO($dbh,'xueyanxiang','xueyanxiang');
$objQuery=$db-query("select*fromuser;");
$res=$objQuery-fetchAll(PDO::FETCH_ASSOC);
不填写参数的话,默认是关联和索引都有,如右图
php7链接数据库问题
第一个问题:$db是对象,对象调用成员方式就是-
第二个问题:mysql_query是php5之前的函数,他不太安全,当然还有mysqli_query扩充提高版,但那些都没有对象好用,为何呢?由于每次使用都不是一个对象,但函数不一样,使用的是同一个函数,假如你学过java的线程大约能够晓得如何回事了。对象new你不用以后会回收,但函数就未必了,这也是为安全考虑,目前对象比较安全。
第三个问题:这个问题很简单,你用的是对象联接,却使用函数,这本就不是一个东西,你没有给全局变量形参(mysqli_connect($servername,$username,$password);),所以不能使用这个函数,这也就是安全问题(第二个问题,你看它一次只能使用一个联接,不像对象,可以new好多个,看出好坏了吧!这是进化的结果linux php连接数据库,由于php想干小型项目用对象,也比较最好管理),至于应当使用哪些?$db-num_rows虽然很简单的,就是把原先的函数封装成为对象,名子几乎不变
php5和php7联接数据库的区别
PHP5中使用mysql_connect()函数进行联接,但实际上linux php连接数据库,PHP5.5开始,mysql系列函数就不推荐使用了,属于废弃函数
PHP7中其实早已彻底不支持了,依照官网说明,取而代之的是如下两个:
本扩充自PHP5.5.0起已废弃,并在将来会被移除。应使用MySQLi或PDO_MySQL扩充来替换之。
$host='127.0.0.1';//主机名或IP地址
$user='root';//数据库用户
$database='cake';//数据库名
$password='root';//数据库密码
$mysqli=newmysqli($host,$user,$password,$database);
$query='SETNAMESUTF8';
$mysqli-query($query);
if($mysqli-errno){
print_f("联接数据库错误br/%s",$mysqli-error);
exit;
PHP7新增MySQL数据
因为mysql句型中存在有name关键字,为防止数组名与关键字相混淆冲突,建议可以用``符号将name包括上去使用,例如:`name`
linux下PHP7可以联接mysql,却不能读取/插入数据?
不能读取是mysql的权限没有打开,操作如下:
1.MySQL行新建用户
//登陆MYSQL
@mysql-uroot-p
@密码
//创建用户
mysqlinsertintomysql.user(Host,User,Password)values('localhost','phplamp',password('1234'));
//刷新权限表
mysqlflushprivileges;
这样就创建了一个名为:phplamp密码为:1234的用户。
//退出后登陆一下
mysqlexit;
@mysql-uphplamp-p
@输入密码
mysql登陆成功
2.MySQL行为用户授权
//登陆MYSQL(有ROOT权限)。我里我以ROOT身分登入.
@mysql-uroot-p
@密码
//首先为用户创建一个数据库(phplampDB)
mysqlcreatedatabasephplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限
@grantallprivilegesonphplampDB.*tophplamp@localhostidentifiedby'1234';//这儿须要注意redhat linux,假若发觉找不到用户,须要执行flushprivilieges;
//刷新系统权限表
mysqlflushprivileges;
mysql其它操作
//假如想指定部份权限给一用户,可以这样来写:
mysqlgrantselect,updateonphplampDB.*tophplamp@localhostidentifiedby'1234';
//刷新系统权限表。
mysqlflushprivileges;
mysqlgrant权限1,权限2,…权限non数据库名称.表名称to用户名@用户地址identifiedby‘连接口令’;
权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。
PHP实现的pdo联接数据库并插入数据功能简单示例
本文实例述说了PHP实现的pdo联接数据库并插入数据功能。分享给你们供你们参考,具体如下:
创建配置文件
pdo_config.php
$db_Type
"mysql";//数据库类型
$host
"localhost";//主机名
$dbName
"test";//数据库名
$userName
"root";//用户名
$password
"root";//密码
$dsn
"{$db_Type}:host={$host};dbname={$dbName}";
pdo插入数据库
pdo_insert.php
header('Content-type:text/html;
charset=utf-8');
require
'pdo_config.php';
try{
$pdo
new
PDO
($dsn,$userName,$password);//创建一个联接对象
$pdo-exec('set
names
utf8');//设置编码
$sql
"INSERT
student
(name,email)
VALUES
('李四','')";
$pdo-exec($sql);
}catch
(PDOException
$e){
die('操作失败'.$e-getMessage());
//关掉联接
$pdo
null;
更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP基于pdo操作数据库方法总结》、《php+mysqli数据库程序设计方法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作方法汇总》
希望本文所述对你们PHP程序设计有所帮助。
本文原创地址://gulass.cn/pljmsjkffphb.html编辑:刘遄,审核员:暂无