您的位置:

phpmysqlreal的简单介绍

本文目录一览:

在学PHP,请问什么情况下要用mysql_real_escape_string转义?我知道用户名要用,但是密码要用吗?

要用的呀,mysql_real_escape_string的用处就是对SQL注入进行过滤,任何用户输入的内容都是不可信任的,包括$_POST、$_GET、$_SESSION、$_COOKIE。

当你的SQL语句用到这几个变量的时候,都要进行防SQL注入处理的,确定是数字的就加intval转化,不确定的就用mysql_real_escape_string进行处理,这样才可以说的上比较安全。

PHP中mysqli_query和mysqli_real_query 有什么区别?

可以这么讲。因为很多PHP程序员不习惯面向对象编程,所以mysqli类库提供了这个方法供他们使用。这也是方便一些使用mysql扩展的用户快速迁移到mysqli。实际上,mysqli_query()内部是对面向对象调用过程的封装。

我个人觉得还是面向对象的写法比较简洁,而mysqli_query()需要多传递一个参数。

PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...

背景:把mysql换成mysqli时出现,连接数过多,其实际上并不是,原因是我挪动了一下php的sock文件位置导致,因这几个socket修改没有修改完全,于是出现了too

many

connections

,从mysql里show

processlist并没有发现真的有连接,其实用tshark抓下包估计能看到(),并没有发出请求,而估计是mysqli的客户端自己报出来的,别看这个问题小,搞了老半天,都想重新安装Php了,发现原来是路径写错了同时mysqli的客户端提示连接数过多的误提示导致方向走错了。如下:

[root@iZ25z0ugwgtZ

etc]#

grep

-r

"mysql.sock"

./

./php.ini:pdo_mysql.default_socket=/data/runsock/mysqlsock/mysql.sock

./php.ini:;mysql.default_socket

=

/tmp/mysql.sock

./php.ini:mysql.default_socket

=

/data/runsock/mysqlsock/mysql.sock

./php.ini:mysqli.default_socket

=

/data/runsock/mysql.sock

//这个位置被挪动到,/data/runsock/mysqlsock/mysql.sock导致。

修改后记得重启动php-fpm:

[root@iZ25z0ugwgtZ

etc]#

service

php-fpm

restart

Gracefully

shutting

down

php-fpm

.

done

Starting

php-fpm

done

______________________排查要点如下_______________________________

warning:

mysqli::real_connect():

(hy000/1040):

too

many

connections

in:

出现场景

:手动编译安装mysql,并制定安装位置,php以localhost方式连接mysql

原因分析

:手动编译安装制定位置后所有的mysql文件都在制定的目录或者data目录下面,php默认只会寻找/temp/mysql.sock找这个sock文件,所以会导致sock文件无法找到。

解决方法

1.给sock文件做个软链

ln

-s

/data/mysqldb/mysql.sock

/tmp/mysql.sock;

或者

2.修改php的默认mysql.sock连接地址

mysql.default_socket=/data/mysqldb/mysql.sock

3.使用tcp

socket的方式进行连接

mysql('127.0.0.1','username','passwod');

下面给大家介绍PHP

mysql_connect()

函数

定义和用法

mysql_connect()

函数打开非持久的

MySQL

连接。

语法

mysql_connect(server,user,pwd,newlink,clientflag)

参数

描述

server

可选。规定要连接的服务器。

可以包括端口号,例如

"hostname:port",或者到本地套接字的路径,例如对于

localhost

":/path/to/socket"。

如果

PHP

指令

mysql.default_host

未定义(默认情况),则默认值是

'localhost:3306'。

user

可选。用户名。默认值是服务器进程所有者的用户名。

pwd

可选。密码。默认值是空密码。

newlink

可选。如果用同样的参数第二次调用

mysql_connect(),将不会建立新连接,而将返回已经打开的连接标识。参数

new_link

改变此行为并使

mysql_connect()

总是打开新的连接,甚至当

mysql_connect()

曾在前面被用同样的参数调用过。

clientflag

可选。client_flags

参数可以是以下常量的组合:

MYSQL_CLIENT_SSL

-

使用

SSL

加密

MYSQL_CLIENT_COMPRESS

-

使用压缩协议

MYSQL_CLIENT_IGNORE_SPACE

-

允许函数名后的间隔

MYSQL_CLIENT_INTERACTIVE

-

允许关闭连接之前的交互超时非活动时间

返回值

如果成功,则返回一个

MySQL

连接标识,失败则返回

FALSE。

提示和注释

注释:脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用

mysql_close()

关闭了。

提示:要创建一个持久连接,请使用

mysql_pconnect()

函数。

例子

?php

$con

=

mysql_connect("localhost","mysql_user","mysql_pwd");

if

(!$con)

{

die('Could

not

connect:

'

.

mysql_error());

}

//

一些代码...

mysql_close($con);

?