国强极客
有问题请加微信:guoqiang7585
国强极客

1、php连接MySQL并执行sql语句

1、php连接MySQL并执行sql语句

1、mysqli_connect()

描述:连接到 MySQL服务器
语法:mysqli mysqli_connect([host][,username][,password][,dbname][,port])
参数:

host:MySQL服务器。可以包含端口号,默认值为“localhost:3306”
username:用户名。默认值是服务器进程所有者的用户名;
password:密码。
dbname:数据库名称。
port:MySQL服务器的端口号,默认为3306。

返回值:如果连接成功,则返回MySQLi连接对象。如果失败,则返回FALSE。

//1.配置数据库基本信息
$db_host = "localhost"; //数据库地址
$db_port = "3306";//数据库端口
$db_user = "root";//数据库用户名
$db_pass = "root";//数据库密码
$db_name = "itcast";//数据库名
$charset = "utf8";//数据库编码
// 2.php连接mysql
$link = mysqli_connect($db_host.':'.$db_port,$db_user,$db_pass,$db_name);
//$link = mysqli_connect($db_host,$db_user,$db_pass,$db_name,$db_port);
var_dump($link);

\(link = mysqli_connect(\)db_host,\(db_user,\)db_pass,\(db_name,\)db_port);
尽量不要使用最后是端口的情况,一般都是 数据库地址:端口的情况

2、@错误抑制运算符

PHP 支持一个错误控制运算符@。当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉(不包括语法错误)。
@ 运算符只对表达式有效
对新手来说一个简单的规则就是:如果能从某处得到值,就能在它前面加上 @ 运算符。例如,可以把它放在变量,函数和 include调用,常量等等之前。不能把它放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等。

3、exit()或die()

描述:输出一个消息并且退出当前脚本,等同于die()。
说明:输出 $string 的值,并中止程序的运行。
返回值:没有返回值

void exit ([ string $string ] ) 
// !取反;
//@ 错误抑制符
//如果数据库连接失败,就输出错误,终止程序向下运行
if(!$link = @mysqli_connect($db_host.':'.$db_port,$db_user,$db_pass)){
    echo "数据库连接失败";
    echo mysqli_connect_error();//输出系统自带的数据库连接错误信息
    die();//终止程序向下运行
}
echo "如果数据库连接成功继续下面的操作";

4、mysqli_connect_error()

描述:返回上一个 MySQL 连接产生的文本错误信息
语法:

string mysqli_connect_error ( void) 

参数:没有参数

5、mysqli_close()

描述:关闭先前打开的数据库连接
语法:

bool mysqli_close ( mysqli $link )
mysqli_close($link);

选择当前数据库

描述:一个数据库服务器可能包含很多的数据库,通常需要针对某个具体的数据库进行编程
语法:

bool mysqli_select_db(mysqli $link, string $database)

返回值:如果成功返回TRUE,失败则返回FALSE。

mysqli_select_db($link,$db_name);
if(!mysqli_select_db($link,$db_name)){
echo "选择数据库".$db_name."失败";
die();
}
//echo "选择数据库".$db_name."成功";

设置客户端字符集

描述:设置默认字符编码
语法:

bool mysqli_set_charset ( mysqli $link , string $charset )

返回:成功时返回 TRUE, 或者在失败时返回 FALSE。

mysqli_set_charset($link,$charset);

本节课程源代码

//1.配置数据库基本信息
$db_host = "localhost"; //数据库地址
$db_port = "3306";//数据库端口
$db_user = "root";//数据库用户名
$db_pass = "root";//数据库密码
$db_name = "itcast";//数据库名
$charset = "utf8";//数据库编码
// 2.php连接mysql
if(!$link = @mysqli_connect($db_host.':'.$db_port,$db_user,$db_pass)){
    echo "数据库连接失败";
    echo mysqli_connect_error();
    die();
}
//3选择数据库
mysqli_select_db($link,$db_name);
if(!mysqli_select_db($link,$db_name)){
echo "选择数据库".$db_name."失败";
die();
}
//4设置数据库字符集
mysqli_set_charset($link,$charset);
//5关闭数据库
mysqli_close($link);

2、执行各种SQL语句

1、mysqli_query()

描述:发送一条 MySQL 查询;
语法:

resource mysqli_query(mysqli $link , string $query )

参数:

$query是查询字符串;
$link是创建的活动的数据库连接;

说明:mysqli_query() 仅对 SELECT,SHOW 或 DESCRIBE 语句返回一个mysqli_result结果集对象,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysqli_query()在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。

注意:查询字符串不应以分号结束,和命令行模式下有区别。

$sql = "select * from ecs_ad";
$result = mysqli_query($link,$sql);
var_dump($result);

2、mysqli_free_result()

描述:释放与结果集相关联的内存
语法:

void mysqli_free_result ( mysqli_result $result )

参数:$result为结果集对象。

//手动销毁结果集变量
mysqli_free_result($result);

内存中的变量何时消失:

(1)网页执行完毕,所有与本网页相关的变量自动销毁;
(2)手动销毁指定的变量。

3、结果集获取一行数据

1、mysqli_fetch_row()

描述:从结果集中取得一行作为枚举数组(索引数组)
格式:

array mysqli_fetch_row ( mysqli_result  $result ) 

返回:返回根据所取得的行生成的数组,如果没有更多行则返回 FALSE。
说明:mysqli_fetch_row() 从指定的结果标识关联的结果集中取得一行数据并作为数组返回。每个结果的列储存在一个数组的单元中,偏移量从 0 开始。
提示:依次调用mysqli_fetch_row()将返回结果集中的下一行,如果没有更多行则返回FALSE。

//输出单条结果集,mysqli_fetch_row运行一次,就读取吓一条
$row1 = mysqli_fetch_row($result);
var_dump($row1);
$row1 = mysqli_fetch_row($result);
var_dump($row1);
//while循环读取全部数据 
while ($row = mysqli_fetch_row($result)){
    print_r($row);
}

2、mysqli_fetch_assoc()

描述:从结果集中取得一行作为关联数组(字段名变下标)
语法:

array mysqli_fetch_assoc ( mysqli_result  $result ) 

返回值:从结果集取得的行生成的关联数组,如果没有更多行则返回 FALSE;
注意:此函数返回的字段名大小写敏感

3、mysqli_fetch_array()

描述:从结果集中取得一行作为关联数组,或数字数组,或二者兼有;
语法:

array mysqli_fetch_array ( mysqli_result  $result  [, int $result_type = MYSQLI_BOTH ] ) 

参数:$result_type是一个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)

MYSQLI_ASSOC = 1 MYSQLI_NUM = 2 MYSQLI_BOTH = 3(默认)

返回:返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
注意:本函数返回的字段名区分大小写

4、mysqli_fetch_all()

描述:从结果集中取得所有行作为关联数组、枚举数组、或二者兼有
语法:

mixed mysqli_fetch_all ( mysqli_result $result [, int $resulttype = MYSQLI_NUM ] )

MYSQLI_ASSOC = 1 MYSQLI_NUM = 2 MYSQLI_BOTH = 3(默认)
提示:获取数据,要不是获取一条,要不是获取多条。

4 获取记录数

1、mysqli_num_rows()

描述:取得结果集中行的数目
语法:

int mysqli_num_rows ( mysqli_result  $result ) 

说明:mysqli_num_rows()返回结果集中行的数目。
注意:此命令仅对 SELECT 语句有效。

2、mysqli_affected_rows()

描述:取得前一次 MySQL 操作所影响的记录行数;
语法:

int mysqli_affected_rows ( mysqli $link )

说明:取得最近一次与 $link 关联的 SELECT、INSERT、UPDATE 或 DELETE 查询所影响的记录行数。
注意:如果最近一次查询失败,函数返回-1。当使用UPDATE查询,MySQL不会将原值和新值一样的值更新,返回值不一定就是查询条件所符合的记录,只有修改过的记录数才会被返回。

echo "111";
赞赏
对内容有疑问,请加我微信:guoqiang7585

国强极客

文章作者

博客站长,有问题请加微信【guoqiang7585】。

国强极客

1、php连接MySQL并执行sql语句
1、mysqli_connect() 描述:连接到 MySQL服务器语法:mysqli mysqli_connect([host][,username][,password][,dbname][,port])参数: host:MySQL服务器。可以包含端口号,默认值为“localh…
扫描二维码继续阅读
2019-07-29