php脚本连接mysql


使用mysql二进制方式 进入到命令提示符下来 连接数据库


/usr/local/mysql/bin/mysql -uroot -p


up61deMacBook-Pro:~ up61$ /usr/local/mysql/bin/mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1916
Server version: 5.6.38 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


使用 PHP 脚本连接 MySQL


PHP 提供了 mysqli_connect() 函数来连接数据库。

该函数有 6 个参数,在成功链接到 MySQL 后返回连接标识,失败返回 FALSE 。

mysqli_connect(host,username,password,dbname,port,socket);


你可以使用PHP的 mysqli_close() 函数来断开与MySQL数据库的链接。

该函数只有一个参数为 mysqli_connect() 函数创建连接成功后返回的 MySQL 连接标识符。

bool mysqli_close ( mysqli $link )

本函数关闭指定的连接标识所关联的到 MySQL 服务器的非持久连接。如果没有指定 link_identifier,则关闭上一个打开的连接。

提示:通常不需要使用 mysqli_close(),因为已打开的非持久连接会在脚本执行完毕后自动关闭。

例子:

<?php
/**
 * Created by PhpStorm.
 * User: up61
 * Date: 2017/11/19
 * Time: 下午6:56
 */
$host = '127.0.0.1:3306';
$dbuser = 'root';
$dbpass = 'root123';

$conn = mysqli_connect($host, $dbuser, $dbpass);
if(! $conn )
{
    die('Could not connect: ' . mysqli_error($conn));
}
echo '数据库连接成功!';
mysqli_close($conn);


本地搭建的虚拟域名是test.cn


浏览器输入 http://test.cn/mysql/db.php

访问结果。数据库连接成功!



我们尝试 把   $host   弄错。

$host->$host1 

<?php
/**
 * Created by PhpStorm.
 * User: up61
 * Date: 2017/11/19
 * Time: 下午6:56
 */
$host = '127.0.0.1:3306';
$dbuser = 'root';
$dbpass = 'root123';

$conn = mysqli_connect($host1, $dbuser, $dbpass);
if(! $conn )
{
    die('Could not connect: ' . mysqli_error($conn));
}
echo '数据库连接成功!';
mysqli_close($conn);


浏览器返回的结果是 

Warning: mysqli_connect(): (HY000/2002): No such file or directory in /Library/WebServer/Documents/html/mysql/db.php on line 33

Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in /Library/WebServer/Documents/html/mysql/db.php on line 36
Could not connect:


提取出来错误类型 

No such file or directory
mysqli_error() expects parameter 1 to be mysqli
Could not connect:


尝试把 $dbuser 变成 $dbuser1 

Warning: mysqli_connect(): (HY000/1045): Access denied for user ''@'localhost' (using password: YES) in /Library/WebServer/Documents/html/mysql/db.php on line 33

Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in /Library/WebServer/Documents/html/mysql/db.php on line 36
Could not connect:


提取出来错误类型

 Access denied for user ''@'localhost' (using password: YES)
Could not connect:


尝试把 $dbpass 变成 $dbpass1

Warning: mysqli_connect(): (HY000/1045): Access denied for user 'root'@'localhost' (using password: NO) in /Library/WebServer/Documents/html/mysql/db.php on line 33

Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in /Library/WebServer/Documents/html/mysql/db.php on line 36
Could not connect:


提取出 错误类型

Access denied for user 'root'@'localhost' (using password: NO)


接下来 我又尝试了吧 数据库用户名 和密码 都设置了空变量。

这里竟然连接成功了。。


进入到数据库才发现 默认安装的mysql。中 

数据库mysql中的user表 中 有 空用户名 和 空密码的记录。也就是说 可以匿名登陆。 

这里 建议 部署到正式服务器上时。把这么数据删除掉。 


来源: up61技术博客 欢迎分享 (QQ:529857614)

qq交流群:63739043 up61博客-php交流群

上一篇: 博客模版版本v1.0.0
下一篇: php脚本创建数据库