PHP连接、操作数据库

一、PHP连接mysql服务器

1、mysqli_connect()

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

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

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

//数据库配置信息
$db_host = 'localhost';
$db_user = 'root';
$db_pass = '666666';
$db_name = 'hsz';
$charset = 'utf8';
//PHP连接mysql服务器:成功返回mysqli对象,失败返回false
$link = mysqli_connect($db_host,$db_user,$db_pass,$db_name);
//打印变量的类型和值
var_dump($link);

结果如下:
图片.png
2、@运算符

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

3、exit()或die()

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

图片.png

4、mysqli_connect_error()

①描述:返回上一个 MySQL 连接产生的文本错误信息
②语法:string mysqli_connect_error ( void)

③参数:没有参数。
图片.png
5、选择当前数据库

①描述:一个数据库服务器可能包含很多的数据库,通常需要针对某个具体的数据库进行编程
②语法:bool mysqli_select_db(mysqli link, stringdatabase)
③返回值:如果成功返回TRUE,失败则返回FALSE。

图片.png

6、设置客户端字符集

①描述:设置默认字符编码
②语法:bool mysqli_set_charset ( mysqli $link , string $charset )
③返回:成功时返回 TRUE, 或者在失败时返回 FALSE。

图片.png

7、执行各种SQL语句: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 的返回值意味着查询是合法的并能够被服务器执行。
⑤注意:查询字符串不应以分号结束,和命令行模式下有区别。

图片.png

8、mysqli_free_result()

①描述:释放与结果集相关联的内存
②语法:void mysqli_free_result ( mysqli_result $result )
③参数:$result为结果集对象。

图片.png

9、mysqli_close()

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

②语法:bool mysqli_close ( mysqli $link )
图片.png

二、从结果集获取数据

1、mysqli_fetch_row()

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

图片.png

2、mysqli_fetch_assoc()

①描述:从结果集中取得一行作为关联数组
②语法:array mysqli_fetch_assoc ( mysqli_result $result )
③返回值:从结果集取得的行生成的关联数组,如果没有更多行则返回 FALSE;
④注意:此函数返回的字段名大小写敏感。

图片.png
通过循环获取所有行:
图片.png

3、mysqli_fetch_array()

①描述:从结果集中取得一行作为关联数组,或数字数组,或二者兼有;
②语法:array mysqli_fetch_array ( mysqli_result $result [, int $result_type = MYSQLI_BOTH ] )
③参数:$result_type是一个常量,取值:MYSQLI_BOTH(两者兼有,默认)、MYSQLI_ASSOC(关联索引)、MYSQLI_NUM(数字索引)
④返回:返回根据从结果集取得的行生成的数组,如果没有更多行则返回 FALSE。
⑤注意:本函数返回的字段名区分大小写。

图片.png

4、mysqli_fetch_all()

①描述:从结果集中取得所有行作为关联数组、枚举数组、或二者兼有
②语法:mixed mysqli_fetch_all ( mysqli_result $result [, int $resulttype = MYSQLI_NUM ] )

图片.png

三、获取记录数

1、mysqli_num_rows()

①描述:取得结果集中行的数目
②语法:int mysqli_num_rows ( mysqli_result $result )
③说明:mysqli_num_rows()返回结果集中行的数目。
④注意:此命令仅对 SELECT 语句有效。

图片.png

2、mysqli_affected_rows()

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

图片.png

综合代码示例:
//数据库配置信息
    $db_host="localhost";
    $db_user="root";
    $db_pass="666666";
    $db_name="phphx";
    $db_charset="utf8";
    //php连接mysql服务器,成功返回mysqli对象,失败返回false
    @$link=mysqli_connect($db_host,$db_user,$db_pass);
    //判断连接mysql服务器是否成功
    if(!$link){
        echo "连接数据库服务器失败!";
        die();
    }
    //判断连接到当前的mysql数据库是否成功
    if(!mysqli_select_db($link,$db_name)){
        echo "连接数据库失败!";
        die();
    }

    //设置字符集
    mysqli_set_charset($link,$db_charset);
    
    //执行查询的sql语句,成功返回结果集资源,失败返回false
    $sql="select * from student where id>30 and id<40";
    $result=mysqli_query($link,$sql);

    //从结果集中取得一行作为枚举数组
    //print_r(mysqli_fetch_row($result));
    
    //从结果集中取得一行作为关联数组
    //print_r(mysqli_fetch_assoc($result));
    
    //从结果集中取得一行作为关联数组,或数字数组,或二者兼有
    //print_r(mysqli_fetch_array($result,MYSQLI_ASSOC));
    
    //从结果集中取得所有行作为关联数组、枚举数组、或二者兼有
    print_r(mysqli_fetch_all($result,MYSQLI_ASSOC));

    //取得结果集中行的数目
    echo "查询到数据总数:".mysqli_num_rows($result);

    //执行更新的sql语句
    $sql2="update student set salary=salary+200 where age>22";
    mysqli_query($link,$sql2);

    //取得已更新的数据的总数
    echo "共更新数据总数:".mysqli_affected_rows($link);

    //释放结果集所占的内存空间
    mysqli_free_result($result);
    //关闭数据库连接
        mysqli_close($link);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容