mysql_real_connect的函数说明

mysql_real_connect的函数说明,第1张

mysql_real_connect()尝试与运行在主机上的MySQL数据库引擎建立连接。在你能够执行需要有效MySQL连接句柄结构的任何其他API函数之前,mysql_real_connect()必须成功完成。

参数的指定方式如下:

第1个参数应是已有MYSQL结构的地址。调用mysql_real_connect()之前,必须调用mysql_init()来初始化MYSQL结构。通过mysql_options()调用,可更改多种连接选项。

“host”的值必须是主机名或IP地址。如果“host”是NULL或字符串localhost,连接将被视为与本地主机的连接。如果 *** 作系统支持套接字(Unix)或命名管道(Windows),将使用它们而不是TCP/IP连接到服务器。

“user”参数包含用户的MySQL登录ID。如果“user”是NULL或空字符串,用户将被视为当前用户。在UNIX环境下,它是当前的登录名。在Windows ODBC下,必须明确指定当前用户名。

“passwd”参数包含用户的密码。如果“passwd”是NULL,仅会对该用户的(拥有1个空密码字段的)用户表中的条目进行匹配检查。这样,数据库管理员就能按特定的方式设置MySQL权限系统,根据用户是否拥有指定的密码,用户将获得不同的权限。 调用mysql_real_connect()之前,不要尝试加密密码,密码加密将由客户端API自动处理。

“db”是数据库名称。如果db为NULL,连接会将默认的数据库设为该值。

如果“port”不是0,其值将用作TCP/IP连接的端口号。注意,“host”参数决定了连接的类型。

如果unix_socket不是NULL,该字符串描述了应使用的套接字或命名管道。注意,“host”参数决定了连接的类型。

client_flag的值通常为0,但是,也能将其设置为下述标志的组合,以允许特定功能: 标志名称 标志描述 CLIENT_COMPRESS 使用压缩协议。 CLIENT_FOUND_ROWS 返回发现的行数(匹配的),而不是受影响的行数。 CLIENT_IGNORE_SPACE 允许在函数名后使用空格。使所有的函数名成为保留字。 CLIENT_INTERACTIVE 关闭连接之前,允许interactive_timeout秒的不活动时间。 CLIENT_LOCAL_FILES 允许LOAD DATA LOCAL处理功能。 CLIENT_MULTI_STATEMENTS 通知服务器,客户端可能在单个字符串内发送多条语句。 CLIENT_MULTI_RESULTS 通知服务器,客户端能够处理来自多语句执行。 CLIENT_NO_SCHEMA 禁止db_name.tbl_name.col_name语法。 CLIENT_ODBC 客户端是ODBC客户端。它将mysqld变得更为ODBC友好。 CLIENT_SSL 使用SSL,该选项不应由应用程序设置,而是在客户端库内部设置。 对于某些参数,能够从选项文件获得取值,而不是取得mysql_real_connect()调用中的确切值。为此,在调用mysql_real_connect()之前,应与MYSQL_READ_DEFAULT_FILE或MYSQL_READ_DEFAULT_GROUP选项一起调用mysql_options()。随后,在mysql_real_connect()调用中,为准备从选项文件读取值的每个参数指定“无值”值:

对于host,指定NULL值或空字符串()。

对于user,指定NULL值或空字符串。

对于passwd,指定NULL值。(对于密码,mysql_real_connect()调用中的空字符串的值不能被选项文件中的字符串覆盖,这是因为,空字符串明确指明MySQL账户必须有空密码)。

对于db,指定NULL值或空字符串

对于port,指定“0”值。

对于unix_socket,指定NULL值。

对于某一参数,如果在选项文件中未发现值,将使用它的默认值,如本节前面介绍的那样。 CR_CONN_HOST_ERROR

无法连接到MySQL服务器。

CR_CONNECTION_ERROR

无法连接到本地MySQL服务器。

CR_IPSOCK_ERROR

无法创建IP套接字。

CR_OUT_OF_MEMORY

内存溢出。

CR_SOCKET_CREATE_ERROR

无法创建Unix套接字。

CR_UNKNOWN_HOST

无法找到主机名的IP地址。

CR_VERSION_ERROR

协议不匹配,起因于:试图连接到具有特定客户端库(该客户端库使用了不同的协议版本)的服务器。如果使用很早的客户端库来建立与较新的服务器(未使用“--old-protocol”选项开始的)的连接,就会出现该情况。

CR_NAMEDPIPEOPEN_ERROR

无法在Windows平台下创建命名管道。

CR_NAMEDPIPEWAIT_ERROR

在Windows平台下等待命名管道失败。

CR_NAMEDPIPESETSTATE_ERROR

在Windows平台下获取管道处理程序失败。

CR_SERVER_LOST

如果connect_timeout>0,而且在连接服务器时所用时间长于connect_timeout秒,或在执行init-command时服务器消失。

转义特殊字符在unescaped_string,考虑到当前字符的连接设置,以便它在的地方是安全的在mysql_query()它。如果二进制数据要插入,这个函数必须被使用

下列字符受影响:

\x00

\n

\r

\

'

"

\x1a

如果成功,则该函数返回被转义的字符串。如果失败,则返回

false。

语法mysql_real_escape_string(string,connection)

参数

描述

string

必需。规定要转义的字符串。

connection

可选。规定

MySQL

连接。如果未规定,则使用上一个连接。

说明

本函数将

string

中的特殊字符转义,并考虑到连接的当前字符集,因此可以安全用于

mysql_query()。

提示和注释

提示:可使用本函数来预防数据库攻击。

例子

例子

1

复制代码

代码如下:

<?php

$con

=

mysql_connect("localhost",

"hello",

"321")

if

(!$con)

{

die('Could

not

connect:

'

.

mysql_error())

}

//

获得用户名和密码的代码

//

转义用户名和密码,以便在

SQL

中使用

$user

=

mysql_real_escape_string($user)

$pwd

=

mysql_real_escape_string($pwd)

$sql

=

"SELECT

*

FROM

users

WHERE

user='"

.

$user

.

"'

AND

password='"

.

$pwd

.

"'"

//

更多代码

mysql_close($con)

?>


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存