PHP7连接mysql数据库方法

PHP7连接mysql数据库方法,第1张

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=localhostdbname=test"

$db= new PDO($dbh,'xueyanxiang','xueyanxiang')

$objQuery= $db->query("select * from user")

$res= $objQuery->fetchAll(PDO::FETCH_ASSOC)

不填写参数的话,默认是关联和索引都有,如下图

使用函数CONCAT_WS()。语法为:CONCAT_WS(separator,str1,str2,…)

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。第一个参数是其它参数的分隔符。分隔符放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的 NULL 值。但是CONCAT_WS()不会忽略任何空字符串。 (然而会忽略所有的 NULL)。

所以使用concat_ws()函数可以拼接多个字符串为一个字符串(当某个字段为空字符串或null值时也能获取正确结果)。

如有不当之处欢迎指正谢谢。

1、配置ODBC数据源

2、使用SQL函数进行连接。

对于1、配置数据源,配置完以后就可以编程 *** 作数据库了。

对于2、使用SQL函数进行连接,参考代码如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

#include<windows.h>

#include<sql.h>

#include<sqlext.h>

void main()

{

HENV henv//环境句柄

HDBC hdbc//数据源句柄

HSTMT hstmt//执行语句句柄

unsigned char datasource[]="数据源名称"//即源中设置的源名称

unsigned char user[]= "用户名"//数据库的帐户名

unsigned char pwd[]= "密码"//数据库的密码

unsigned char search[]="select xm from stu where xh=0"

SQLRETURN retcode//记录各SQL函数的返回情况

// 分配环境句柄

retcode= SQLAllocEnv(&henv)// 等介于 SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL

, &henv)

// 设置ODBC环境版本号为3.0

retcode= SQLSetEnvAttr(henv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0)

// 分配连接句柄

retcode= SQLAllocConnect(henv,&hdbc)// 等介于 SQLAllocHandle(SQL_HANDLE_DBC, henv, &hdbc)

//设置连接属性,登录超时为*rgbValue秒(可以没有)

// SQLSetConnectAttr(hdbc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)(rgbValue), 0)

//直接连接数据源

// 如果是windows身份验证,第二、三参数可以是


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7246424.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存