php7写入数据语同 php5和php7的语法区别

php5和php7连接数据库的区别

PHP5中使用mysql_connect()函数进行连接,但实际上,PHP5.5开始,mysql系列函数就不推荐使用了,属于废弃函数

武汉ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!

PHP7中貌似已经彻底不支持了,根据官网说明,取而代之的是如下两个:

本扩展自 PHP 5.5.0 起已废弃,并在将来会被移除。应使用 MySQLi 或 PDO_MySQL 扩展来替换之。

$host = '127.0.0.1';//主机名或IP地址

$user = 'root';        //数据库用户

$database = 'cake';    //数据库名

$password ='root';    //数据库密码

$mysqli = new mysqli($host,$user,$password,$database);

$query = 'SET NAMES UTF8';

$mysqli-query($query);

if($mysqli-errno){

print_f("连接数据库错误br/ %s",$mysqli-error);

exit;

}

php7链接数据库问题

第一个问题: $db是对象,对象调用成员方法就是-

第二个问题:mysql_query是php5之前的函数,他不太安全,其实还有mysqli_query扩展增强版,但这些都没有对象好用,为什么呢?因为每次使用都不是一个对象,但函数不一样,使用的是同一个函数,如果你学过java的线程大概就能知道怎么回事了。对象new 你不用之后会回收,但函数就未必了,这也是为安全考虑,目前对象比较安全。

第三个问题:这个问题很简单,你用的是对象连接,却使用函数,这本就不是一个东西,你没有给全局变量赋值(mysqli_connect($servername, $username, $password);),所以不能使用这个函数,这也就是安全问题(第二个问题,你看它一次只能使用一个连接,不像对象,可以new很多个,看出优劣了吧!这是进化的结果,因为php想干大型项目用对象,也比较最好管理),至于应该使用什么?$db -num_rows其实很简单的,就是把以前的函数封装成为对象,名字几乎不变

linux下PHP7可以连接mysql,却不能读取/插入数据?

不能读取是mysql的权限没有打开,操作如下:

1.MySQL命令行新建用户

//登录MYSQL

@mysql -u root -p

@密码

//创建用户

mysql insert into mysql.user(Host,User,Password) values('localhost','phplamp',password('1234'));

//刷新系统权限表

mysqlflush privileges;

这样就创建了一个名为:phplamp 密码为:1234 的用户。

//退出后登录一下

mysqlexit;

@mysql -u phplamp -p

@输入密码

mysql登录成功

2.MySQL命令行为用户授权

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.

@mysql -u root -p

@密码

//首先为用户创建一个数据库(phplampDB)

mysqlcreate database phplampDB;

//授权phplamp用户拥有phplamp数据库的所有权限

@grant all privileges on phplampDB.* to phplamp@localhost identified by '1234'; //这里需要注意,如果发现找不到用户,需要执行命令 flush privilieges;

//刷新系统权限表

mysqlflush privileges;

mysql其它操作

//如果想指定部分权限给一用户,可以这样来写:

mysqlgrant select,update on phplampDB.* to phplamp@localhost identified by '1234';

//刷新系统权限表。

mysqlflush privileges;

mysql grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。

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

原因是:

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 新增MySQL数据

由于 mysql 语法中存在有 name 关键字,为避免字段名与关键字相混淆冲突,建议可以用 `` 符号将 name 包括起来使用,比如: `name`


网站栏目:php7写入数据语同 php5和php7的语法区别
网站地址:http://ybzwz.com/article/dodcicg.html