PHP连接MySQL数据库并以json格式输出

1.简介

PHP连接数据库有多种方法,现介绍常用的MySQL数据库连接方法,PHP连接MySQL也有两种方式,一是面向对象,二是面向过程方式,两种方法稍有区别。下面通过代码介绍两种方法连接MySQL并以json格式输出。

2、面向对象方式

<?php
header("content-Type: text/html; charset=utf-8");//字符编码设置
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "mydb"; 

// 创建连接
$conn =new mysqli($servername, $username, $password, $dbname);
// 检测连接
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM power WHERE DATE='2014-1-1'";
$result = $conn->query($sql); 

$arr = array();
// 输出每行数据
while($row = $result->fetch_assoc()) {
  $count=count($row);//不能在循环语句中,由于每次删除row数组长度都减小
  for($i=0;$i<$count;$i++){
    unset($row[$i]);//删除冗余数据
  }
  array_push($arr,$row); 

}
//print_r($arr);
echo json_encode($arr,JSON_UNESCAPED_UNICODE);//json编码
$conn->close(); 

?> 

3.面向过程方式

<?php
header("content-Type: text/html; charset=utf-8");//字符编码设置
$servername = "localhost";
$username = "root";
$password = "123456";
$dbname = "mydb"; 

// 创建连接
$con =mysqli_connect($servername, $username, $password, $dbname);
// 检测连接
if (mysqli_connect_errno())
{
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
} 

$sql = "SELECT * FROM power WHERE DATE='2014-1-1'";
$result = mysqli_query($con,$sql); 

$arr = array();
while($row = mysqli_fetch_array($result)) {
  $count=count($row);//不能在循环语句中,由于每次删除 row数组长度都减小
  for($i=0;$i<$count;$i++){
    unset($row[$i]);//删除冗余数据
  } 

  array_push($arr,$row); 

}
echo json_encode($arr,JSON_UNESCAPED_UNICODE);
mysqli_close($con); 

?> 

4.输出json示例

[{"NAME":"小区1","DM":"A","LNG":"564142.623","LAT":"4329376.169","DATE":"2014-1-1","VAL":"26.8"},{"NAME":"小区2","DM":"B","LNG":"563089.677","LAT":"4329311.017","DATE":"2014-1-1","VAL":"26.8"}] 

5.json输出说明

由于$row = mysqli_fetch_array($result)获取数据的一行数据并以数组形式存储,里边除了字段和值键值对外默认还会有0,1,2……下标存在,如下所示

Array ( [0] => 小区1 [NAME] => 小区1 [1] => A [DM] => A [2] => 564142.623 [LNG] => 564142.623 [3] => 4329376.169 [LAT] => 4329376.169 [4] => 2014-1-1 [DATE] => 2014-1-1 [5] => 26.8 [VAL] => 26.8 )  

如此数据就出现冗余,unset方法则是删除数组冗余数据,之后再添加到$arr数组中。
另外在json编码中json_encode($arr);会出现中文被unicode编码,php5.3加入了options参数, 5.4以后才加入JSON_UNESCAPED_UNICODE,这个参数,不需要做escape和unicode处理。所以在5.4之前都需要对中文做个处理 。5.4里面直接补上代码中的参数即可。

整理网上的方法,5.4之前处理方法有两种,方法1:在实际应用中有个问题,部分字符会掉,原因暂不清楚。

function encode_json($arr){
  $code = json_encode($arr);
  return preg_replace("#\\\u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '\\1'))", $code);
} 

方法2:先对需要处理的做urlencode处理,然后json_encode,最后做urldecode处理

function encode_json($str) {
  return urldecode(json_encode(url_encode($str)));
} 

/**
 *
 */
function url_encode($str) {
  if(is_array($str)) {
    foreach($str as $key=>$value) {
      $str[urlencode($key)] = url_encode($value);
    }
  } else {
    $str = urlencode($str);
  } 

  return $str;
} 

mysqli连接mysql数据库的常用方法(面向对象和面向过程)

相信开始学习PHP的伙伴们用的都是php4,或者php5,在这些版本中都有一个连接数据库的函数mysql_connect(),但在使用php5.5及5.5以上版本时,你会发现使用mysql_connect()会直接报错,这是因为php5.5以后的版本考虑到未来的可移植性和安全性,性能而废弃了mysql_connect()函数,所以我们只能使用mysqli_connect()和PDO,这里我说一下mysqli_connect()。

mysqli_connect()的两种方式,面向过程和面向对象的连接数据库方法。

(1)面向过程连接数据库:

<!-- 面向过程的数据库mysqli连接 -->
<?php
  $conn=mysqli_connect("localhost","root","950609","user");
  // 连接数据库user
  if (!$conn) {
    # code...判断链接是否成功
    echo "连接失败!";
    echo mysqli_connect_error();
    exit();
  }
  mysqli_query($conn,"set names utf8");
  // 指定编码格式
  $sql="select * from goods";
  // sql语句
  $result=mysqli_query($conn,$sql);
  // 执行sql语句,将执行结果返回到结果集中
  $row=mysqli_fetch_array($result);
  // 从结果集中取得一行作为数组
  echo "<pre>";
  print_r($row);
?> 

(2)面向对象的数据库连接

<!-- 面向对象的数据库mysqli连接 -->
lt;?php
$mysqli=new mysqli("localhost","root","950609","user");
if ( $mysqli -> connect_error ) {
  die( 'Connect Error (' . $mysqli -> connect_errno . ') '
      . $mysqli -> connect_error );
}
$sql = "select * from goods";
  $mysqli->set_charset("utf8");
  $result = $mysqli->query($sql);
  $row = $result->fetch_array(); // 从结果集中取得一行作为数组
  echo '<pre>';
  print_r($row);
  /* free result set */
  $result->free();
  /* close connection */
  $mysqli->close();
> 

这篇文章就介绍到这了,关于PHP连接MySQL数据库并以json格式输出的实现代码,需要的朋友可以参考一下。

(0)

相关推荐

  • php连接mysql数据库

    连接数据库: 使用面向对象的方法: 1.造一个mysqli对象,造连接对象 2.准备一条SQL语句 3.执行SQL语句,如果是查询语句.成功返回结果及对象 4.从结果集对象里找到数据: 查询属性代码: <?php //造一个mysqli对象,造连接对象 $db=new MySQLi("localhost","root","12345678","heiheihei"); //括号里面填的是IP地址域名,用户名,密码,数据库

  • php连接mysql数据库最简单的实现方法

    在连接MySQL数据库之前,您必须指定以下信息: MySQL数据源名称或DSN:指定MySQL数据库服务器的地址.您可以使用IP地址或服务器名称,例如,127.0.0.1 或 localhost MySQL数据库名称:表示要连接的数据库的名称. 用户名和密码:指定用于连接MySQL数据库服务器的MySQL用户的用户名和密码.该帐户必须具有足够的权限才能访问上面指定的数据库. 我们将使用: 本地MySQL数据库服务器,这样DSN是localhost. 在classicmodels作为样本数据库.

  • PHP使用mysql与mysqli连接Mysql数据库用法示例

    本文实例讲述了PHP使用mysql与mysqli连接Mysql数据库的方法.分享给大家供大家参考,具体如下: 代码很简单直接上了 <?php /** * @Author: HTL * @Description: Description */ // 降低PHP默认的错误级别 // 只显示除禁用以外的所有错误 // 解决因为PHP5.3+版本太高而导致在使用mysql_connect时出现的弃用警告"Deprecated: mysql_connect(): The mysql extensio

  • PHP连接MySQL进行增、删、改、查操作

    话不多说,请看代码: <table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>代号</td> <td>姓名</td> <td>性别</td> <td>民族</td> <td>生日</td> <

  • PHP连接MySql闪断自动重连的方法

    使用php作为后台运行程序(例如短信群发),在cli模式下执行php,php需要连接mysql循环执行数据库处理. 当mysql连接闪断时,之后循环的执行将会失败. 我们需要设计一个方法,当mysql闪断时,可以自动重新连接,使后面的程序可以正常执行下去. 1.创建测试数据表 CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(20) NOT NULL, PRIMARY KEY (

  • PHP连接MYSQL数据库的3种常用方法

    对于PHP入门用户来说,我们只要掌握基本的数据库写入.读取.编辑.删除等基本的操作就算入门,也可以写出简单的程序出来,比如留言本.新闻文章系统等等.在整个过程中,MySQL数据库的连接也是比较重要的,可以使用多种方法进行连接,对于新手来说我们就不要去分析哪种方式对于系统资源的优化程度,我们先能连接上就行. 这里,整理几种常用的PHP连接MYSQL数据库的方法. 第一.常用普通方法 $mysql_server="localhost"; $mysql_username="数据库用

  • PHP连接MySQL数据库并以json格式输出

    1.简介 PHP连接数据库有多种方法,现介绍常用的MySQL数据库连接方法,PHP连接MySQL也有两种方式,一是面向对象,二是面向过程方式,两种方法稍有区别.下面通过代码介绍两种方法连接MySQL并以json格式输出. 2.面向对象方式 <?php header("content-Type: text/html; charset=utf-8");//字符编码设置 $servername = "localhost"; $username = "roo

  • Vue项目通过node连接MySQL数据库并实现增删改查操作的过程详解

    目录 Vue项目通过node连接MySQL数据库 1.创建Vue项目 2.下载安装需要的插件 3.在项目中创建server文件夹,用于搭建本地服务器 4.Vue项目访问接口获取数据 数据表的增删改查操作 1.服务器配置 2.前端配置 页面样式 总结 Vue项目通过node连接MySQL数据库 1.创建Vue项目 vue create 项目名 Vue项目创建的详细步骤,有需要的可移步这里 2.下载安装需要的插件 下载express npm install express 下载cors,用于处理接口

  • Node.js数据库操作之连接MySQL数据库(一)

    介绍 首先说来介绍一下MySQL(非广告).MySQL是由瑞典的MySQL AB公司开发,后来被甲骨文公司收购.和Oracle一样,MySQL是一个典型的关系型数据库,在百度百科中,把MySQL称为是最好的关系数据库管理系统的之一. 什么是关系型数据库和非关系型数据库 说到关系型数据库,大家肯定就会想到另一个词与之对应,非关系型数据库,那么这两者有什么样的区别呢? 关系型数据库是指采用了关系模型(指的是二维表格模型)来组织数据的数据库,有稳定的表结构:而非关系型数据库中的数据没有关系模型,以对象

  • SpringBoot连接MYSQL数据库并使用JPA进行操作

    今天给大家介绍一下如何SpringBoot中连接Mysql数据库,并使用JPA进行数据库的相关操作. 步骤一:在pom.xml文件中添加MYSQl和JPA的相关Jar包依赖,具体添加位置在dependencies中,具体添加的内容如下所示. <!--数据库相关配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-

  • thinkphp3.x连接mysql数据库的方法(具体操作步骤)

    本文实例讲述了thinkphp3.x连接mysql数据库的方法.分享给大家供大家参考,具体如下: 惯例配置文件:ThinkPHP/conf/convention.php (1)在配置文件中填写配置信息(配置文件:"./xmall/conf/config.php"): 示例: <?php return array( //'配置项'=>'配置值' /* 数据库设置 */ 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'loc

  • Node连接mysql数据库方法介绍

    使用Node做Web开发,基本上都是使用NoSQL数据库,最频繁的就是使用MongoDB了,自己做了一些简单的Web开发,为了降低学习门槛,一直使用MySQL来做数据库.这里简单介绍一下连接MySQL数据库的方式,希望能帮助到其他人. npm install --save mysql 使用上述命令安装完MySQL的模块后,就可以直接使用了,官网的DOCS里一个简单的例子如下就可以入门了. var mysql = require('mysql'); var connection = mysql.c

  • nodejs实现的连接MySQL数据库功能示例

    本文实例讲述了nodejs实现的连接MySQL数据库功能.分享给大家供大家参考,具体如下: 1.在工程目录下运行npm install mysql安装用于nodejs的mysql模块: 2.创建db.js模块用于连接mysql,同时定义query查询方法: var mysql = require('mysql'); // 创建一个数据库连接池 var pool = mysql.createPool({ connectionLimit: 50, host: 'localhost', user: '

  • nodejs连接mysql数据库及基本知识点详解

    本文实例讲述了nodejs连接mysql数据库及基本知识点.分享给大家供大家参考,具体如下: 一.几个常用的全局变量 1.__filename获取当前文件的路径 2.__dirname获取当前文件的目录 3.process.cwd()获取当前工程的目录 二.文件的引入与导出 1.使用require引入文件 2.使用module.exports导出文件中指定的变量.方法.对象 三.node项目的搭建目录结构 demo package.json 当前项目所依赖的包或者模块     router  存

  • java连接mysql数据库实现单条插入和批量插入

    本文实例为大家分享了java连接mysql数据库实现单条和批量插入的具体代码,供大家参考,具体内容如下 本文插入数据库的数据来源:java + dom4j.jar提取xml文档内容 1.连接数据库 package com.njupt.ymh; import java.sql.DriverManager; import java.sql.SQLException; import com.mysql.jdbc.Connection; public class Connect_MySQL { priv

  • JDBC连接MySQL数据库批量插入数据过程详解

    这篇文章主要介绍了JDBC连接MySQL数据库批量插入数据过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.读取本地json数据 2.jdbc理解数据库 3.批量插入 maven 引入jar包: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2

随机推荐