php连接数据库报错 phpstudy无法连接数据库

php连接mysql数据库,报错Function mysql_connect() is deprecated?

info.php在CentOS

公司主营业务:网站设计、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出新巴尔虎左免费做网站回馈大家。

64位虚拟机运行的时候,其中MySQL版本那一栏是空白信息。我查看了info.php源码,开始以为是MySQL数据库的用户名和密码填写错了,仔细检查没有错误之后,便查看了Apache的error_log,得到如下消息:

mysql_connect():

No

such

file

or

directory

在网上查了一下,说是本地socket设置与默认的不一样,导致php无法找到mysql的socket文件。根据网上提供的方法,需要做如下操作。

首先,在MySQL中用status查看数据库状态,如下所示:

mysql

Ver

14.14

Distrib

5.1.69,

for

redhat-Linux-gnu

(x86_64)

using

readline

5.1

Connection

id:

10

Current

database:

Current

user:

root@localhost

SSL:

Not

in

use

Current

pager:

stdout

Using

outfile:

''

Using

delimiter:

;

Server

version:

5.1.69

Source

distribution

Protocol

version:

10

Connection:

Localhost

via

UNIX

socket

Server

characterset:

latin1

Db

characterset:

latin1

Client

characterset:

latin1

Conn.

characterset:

latin1

UNIX

socket:

/var/lib/mysql/mysql.sock

Uptime:

20

hours

55

min

30

sec

其中,标红的部分是我们需要的。然后打开php.ini文件,需要将mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket的值设置为标红后面的那个目录。重启apache服务器,后续info.php工作正常,MySQL的版本信息能够正常显示了。

php 5.3.5连接数据库报错

先来看看PHP5.3以前的mysql_query这个函数

resource mysql_query ( string $query [, resource $link_identifier] )

这里的$link_identifier是可选的,如果你没写,那么就会自动调用上一个使用mysql_connect的连接

而PHP5.3必须要加这个连接参数

所以你应该这样使用:

$link = mysql_connect('localhost:3306', 'db_user', 'db_pwd');

这里建立一个数据库的连接

然后每次使用mysql_query的使用你都应该把$link带上,如:

mysql_query('SQL语句', $link);

这样就不会出错了,你可以封装成一个类,在类结束的时候自动关闭连接

php连接数据库的类,但是选择数据库的时候总是出错,怎么回事呢?

构造函数错咯

function __construct($host,$user,$pass,$database){

$this - host=$host;

$this - user=$user;

$this - pass=$pass;

$this - database=$database;

// echo $db;

$conn = mysql_connect($host,$user,$pass);

$db = mysql_select_db($this - database,$conn);

if($db){

echo "数据库成功";

}else{

echo "数据库失败";

}

}

//给你改咯哈这个类

class register{

private $host;        //The host address

private $user;        //The user

private $pass;    //The password

private $database;          //The database

private $conn;

//Connect with the database

function __construct($host,$user,$pass,$database){

$this - host=$host;

$this - user=$user;

$this - pass=$pass;

$this - database=$database;          

$conn = mysql_connect($host,$user,$pass)or die("连接失败!");

mysql_select_db($this - database,$conn) or die("选择数据库失败!");

$this-conn=$conn;

}

//Add a user

function addUser($data){

$dataObj    =     $data;//类里边不要把变量写得太死

$userInfo   =     json_decode($dataObj,true);  //change the data from the type of json to array.

$username   =     $userInfo[0];

$password   =     $userInfo[1];

$repassword =     $userInfo[2];

//The sql to add the new user

@$sql_addUser = EOF

insert into users values("","$username","$password","$repassword");

EOF;

// var_dump($sql_addUser);break;

$result = mysql_query($sql_addUser,$this-conn);//指定连接,少些麻烦

// var_dump($result);break;

if($result){

echo  1;

}else{

echo 0;

}

}

}

php通过定义常量连接数据库出错

这些是 PHP 的提示而非报错,PHP 本身不需要事先声明变量即可直接使用,但是对未声明变量会有提示。一般作为正式的网站会把提示关掉的,甚至连错误信息也被关掉。

修改php.ini

将error_reporting = E_ALL改为error_reporting = E_ALL  ~E_NOTICE

若还有问题到后盾网论坛问题求助专区

还有个不是办法的办法就是在每个文件头上加error_reporting(0); 虽然不好弄但是可以解决问题


本文标题:php连接数据库报错 phpstudy无法连接数据库
当前URL:http://scyanting.com/article/doosjdc.html