PHP利用MySQLi函数连接数据库

一、连接数据库

  • mysqli_connect

    # 注意抑制符的使用
    
    $link = @mysqli_connect('localhost','root','root2','test');

二、获取连接失败原因

  • 错误号:mysqli_connect_errno
  • 错误信息:mysqli_connect_error
    if( mysqli_connect_errno() ){
    var_dump(mysqli_connect_error());
    }

三、选择操作的数据库

if(!mysqli_select_db($link,'wechat')){
var_dump(mysqli_errno($link).':'.mysqli_error($link));
}

四、选择字符集

if(!mysqli_set_charset($link,'utf-8')){
var_dump(mysqli_errno($link).':'.mysqli_error($link));
}

五、准备要执行的SQL语句

$sql = "SELECT * FROM `jk_message` ORDER BY id DESC";

注意:mysqli_real_escape_string(link,param);

六、执行SQL语句

$result = mysqli_query($link,$sql);

七、处理执行结果

  • mysqli_num_rows 返回查询结果记录数
  • mysqli_affected_rows 返回操作(增删改)影响的行数
  • mysqli_fetch_row 获取一条数据的索引数组
  • mysqli_fetch_assoc 获取一条数据的关联数组
  • mysqli_insert_id() 获取新增记录的id
while ($rows = mysqli_fetch_assoc($result)){
var_dump($rows);
}

八、释放资源、关闭连接

  • 释放资源:mysqli_free_result
  • 关闭连接:mysqli_close
mysqli_free_result($result);
mysqli_close($link);

配置文件

define('DB_HOST','127.0.0.1');        //主机..
define('DB_USER','root'); //管理员
define('DB_PWD','jack123456'); //密码
define('DB_PREFIX','ps_'); //定义前缀常量..
define('DB_NAME','panshinet'); //这里我们先这么定义..注意这里是库名
define('DB_CHARSET','utf8'); //定义字符集..

实例:

//连接数据库
$link=@mysqli_connect("localhost","root","root","jkdb");
if(!$link){
//写入错误日志
$logs=date("Y-m-d H:i:s").mysqli_connect_error().PHP_EOL;
file_put_contents("mysql.err",$logs,FILE_APPEND);
}
//设置字符集
if(!mysqli_set_charset($link,"utf8")){
$logs=date("Y-m-d H:i:s")."设置字符集失败".PHP_EOL;
file_put_contents("mysql.err",$logs,FILE_APPEND);
}
//查询
$sql="select money from user where username='张无忌'";
$res=mysqli_query($link,$sql);
$money=mysqli_fetch_assoc($res)["money"];
var_dump($money);
//关闭数据库
mysqli_free_result($res);
mysqli_close($link);

PHP利用MySQLi函数连接数据库的更多相关文章

  1. mysqli函数库的使用

    综述 1.什么是mysqli PHP-MySQL 函数库是 PHP 操作 MySQL 资料库最原始的扩展库,PHP-MySQLi 的 i 代表 Improvement ,相当于前者的增强版,也包含了相 ...

  2. 利用JavaScript函数对字符串进行加密

    加密.解密问题对我来说一直是很神秘的,感到神奇无比. 理论了解 前段时间看到关于利用JavaScript函数unescape()和escape()对字符串进行替换处理.通过查资料得知, escape( ...

  3. 【编程题目】请修改 append 函数,利用这个函数实现两个非降序链表的并集

    42.请修改 append 函数,利用这个函数实现(链表):两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5另外只能输出结 ...

  4. PHP获取毫秒时间戳,利用microtime()函数

    PHP获取毫秒时间戳,利用microtime()函数 php本身没有提供返回毫秒数的函数,但提供了一个microtime()函数,借助此函数,可以很容易定义一个返回毫秒数的函数.php的毫秒是没有默认 ...

  5. PHP利用socket_bind函数切换IP地址采集数据

    在利用PHP进行数据采集的过程中,通常会遇到IP被屏蔽或出现验证码的情况:为了能够继续采集,我们需要切换不同的ip,每访问一次,随机切换一个IP.当然也可以通过收集大量代理,通过切换代理的方式进行采集 ...

  6. 黑马程序员——利用swap函数研究C的指针

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 设计3个函数,分别实现已下功能: 交换两个整数 交换两个整形指针 交换任意两个同类型的变量 #i ...

  7. 利用Format函数格式化时间和日期

    在做机房收费系统的时候,因为需要使用到日期进行查询,所以在数据表中没有使用自动添加日期的功能,而是采用了自定义的格式插入.但由于事先没有对时间转换的格式进行统一,导致后面查询时出现的问题不断. 插入时 ...

  8. (转)Java程序利用main函数中args参数实现参数的传递

    Java程序利用main函数中args参数实现参数的传递 1.运行Java程序的同时,可以通过输入参数给main函数中的接收参数数组args[],供程序内部使用!即当你在Java命令行后面带上参数,J ...

  9. 利用freopen()函数和fc命令简化程序调试

    大家在参加ACM比赛或者参加c/c++实验技能竞赛的时候,如果遇到大量的输入和大量的输出时,调试起来很不方便.一来如果结果不正确的话,需要重复输入大量数据:二来如果大量输出的话,得仔细检查输出结果与正 ...

  10. 利用copy函数简单快速输出/保存vector向量容器中的数据

    如果要输出vector中的数据我们可以通过循环语句输出,更加简便的方法是利用copy函数直接输出,例子: #include "stdafx.h" #include <iost ...

随机推荐

  1. luoguP1419 寻找段落(二分答案+单调队列)单调队列DP求在区间[l,r] 中长度至少为 m 的最大平均值

    模板:单调队列DP求在区间\([l,r]\) 中长度至少为 \(m\) 的最大平均值 题目链接:Here 题意 给定一个长度为 \(n\) 的序列 \(a_1\) ~ \(a_n\) ,从中选取一段长 ...

  2. Oracle JDK7 bug 发现、分析与解决实战

    本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/8f34CaTp--Wz5pTHKA0Xeg作者:vivo 官网商城开发团队 众所周知,Ora ...

  3. 国内服务器 3 分钟将 ChatGPT 接入微信公众号(超详细)

    原文链接:https://forum.laf.run/d/364 最近很火的ChatGPT可以说已经满大街可见了,到处都有各种各样的体验地址,有收费的也有免费的,总之是五花八门.花里胡哨. 所以呢,最 ...

  4. P1854-DP【绿】

    首先通过这道题我收获了一个知识,那就是deque可以直接赋值,作用和vector类似就是复制一个一摸一样的deque,很好用,越来越发现deque眉清目秀了起来.以后deque可能是我最常用的STL结 ...

  5. 如何在vim创建的脚本内添加固定的头部信息

    编辑以下的文件: vim /etc/vimrc 在脚本的结尾添加如下内容: autocmd BufNewFile *.sh,*.script exec ":call WESTOS()&quo ...

  6. 【TouchGFX】Widgets and Containers

    Widgets and Containers 是 TouchGFX 应用最基础的东西,他们贯穿于 UI 的整个开发,属于 TouchGFX 的预制组件,同时也支持自定义实现 Widgets Widge ...

  7. 梳理Langchain-Chatchat知识库API接口

    一.Langchain-Chatchat 知识库管理 1.Langchain-Chatchat 对话和知识库管理界面   Langchain-Chatchat v0.28 完整的界面截图,如下所示: ...

  8. [转帖]直接内存监控不准确,netty玩了什么花?

    https://segmentfault.com/a/1190000044509636     是挺久没有"宠爱"我们netty小婊贝了,最近又开始搞事了. 于是,趁机探究了下MX ...

  9. 凡是有但是-varchar和nvarchar的初步学习之一

    凡是有但是-varchar和nvarchar的初步学习之一 背景 高应用开发, 在涉及到国内国外的问题时,重要的事情有两个: 时区转换, 字符集转换. 时区转换虽然是很难理清楚, 各种规范不统一的事情 ...

  10. [转帖]Nginx反向代理中使用proxy_redirect重定向url

    https://www.cnblogs.com/kevingrace/p/8073646.html 在使用Nginx做反向代理功能时,有时会出现重定向的url不是我们想要的url,这时候就可以使用pr ...