PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

使用PHP连接MySql数据库具体操作:

<?php
/**
* 数据库连接文件
* Created by PhpStorm.
* User: DingChao
* Date: 2017/10/17
* Time: 16:02
*/ /*对应的参数1:本地,2:用户名3,密码*/
$conn = @mysql_connect("localhost", "****", "****");
if (!$conn) {
die("数据库链接失败:" . mysql_error);
}
mysql_select_db("phpdemo1", $conn);//参数2:数据库名称
//字符转换,读库
mysql_query("set character set 'utf-8'");
//写库
mysql_query("set names 'utf-8'");
?>

在要进行数据库连接查询数据时:

<?php
/**
* Created by PhpStorm.
* User: DingChao
* Date: 2017/10/19
* Time: 13:51
*/
/*防止乱码*/
header("Content-type: text/html; charset=utf-8");
//session_start();
//多表联查 inner join测试
include('conn.php'); /*根据传递的不同参数执行不同的方法*/
if (empty($_REQUEST['arg'])) {
/*拼接成功后返回的字符串*/
$resultJson = array(
'state' => 1,
'msg' => '缺少必要的参数',
'data' => ''
);
echo JSON($resultJson);
} else {
if ($_REQUEST['arg'] != '') {
if ($_REQUEST['arg'] == 'datajson') {
$sql = "select e.ename,e.ejob,d.dname from emp e INNER JOIN dept d on e.edid=d.did";
//$result = mysql_query('select e.ename,e.ejob,d.dname from emp e INNER JOIN dept d on e.edid=d.did');
$result = mysql_query($sql); /*创建数组用来接收多部门员工*/
$emp_dept = array();
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_assoc($result)) {
array_push($emp_dept, $row);
}
/*拼接成功后返回的字符串*/
$resultJson = array(
'state' => 0,
'msg' => '查询成功',
'data' => $emp_dept
);
// print_r(json_encode($resultJson));//打印json
echo JSON($resultJson);
} else {
/*拼接没有数据后返回的字符串*/
$resultJson = array(
'state' => 1,
'msg' => '暂时没有数据',
'data' => ''
);
// print_r(json_encode($resultJson));
echo JSON($resultJson);
}
}
} /*根据参数传递的不同值执行不同的方法*/
if (empty($_REQUEST['arg'])) $_REQUEST['arg'] = '';
if ($_REQUEST['arg'] != '') {
if ($_REQUEST['arg'] == 'argssss') {
echo 'efadfdfasdfsadfsdfas';
}
}
} /*处理链表查询中文为null的情况和JOSN配合使用*/
/**
* arrayRecursive方法对输出结果进行递归,把每一项用urlencode处理
* 在开始的时候,我们建立一个递归层数计数器,如果递归层数太深我们就放弃此次操作
* apply_to_keys_also 变量一般为false,我们在建立数据库时用的索引一般都是英文,故在这里并不用将数组的索引值也用urlencoding处理
* @param string &$array 要处理的字符串
* @param string $function 要执行的函数,我们将所有数据都用urlencode处理
* @param boolean $apply_to_keys_also 是否也应用到key上,因为key一般都为英文,故这里为false
*/ function arrayRecursive(&$array, $function, $apply_to_keys_also = false)
{
static $recursive_counter = 0;
if (++$recursive_counter > 1000) {
die('possible deep recursion attack');
}
foreach ($array as $key => $value) {
if (is_array($value)) {
arrayRecursive($array[$key], $function, $apply_to_keys_also);
} else {
$array[$key] = $function($value);
}
if ($apply_to_keys_also && is_string($key)) {
$new_key = $function($key);
if ($new_key != $key) {
$array[$new_key] = $array[$key];
unset($array[$key]);
}
}
}
$recursive_counter--;
} /**
* 首先对结果数组$array运行arrayRecursive,将所有内容进行urlencoding
* 接着对urlencode之后的数组进行JSON编码
* 最后再进行JSON解码,于是得到了我们需要的中文数据
* @param string &$array 要处理的字符串,这里是数据库中的数据
*/ function JSON($array)
{
arrayRecursive($array, 'urlencode', true);
$json = json_encode($array);
return urldecode($json);
}

PHP成长之路之PHP连接MySql数据库(一)的更多相关文章

  1. nodejs进阶(6)—连接MySQL数据库

    1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...

  2. PDO连接mysql数据库

    1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接 ...

  3. Windows操作系统下远程连接MySQL数据库

    用Eclipse做一个后台项目,但是数据库不想放在本地电脑,于是买了一个腾讯云服务器(学生有优惠,挺便宜的),装上MySQL数据库,但是测试连接的时候,发现总是连接不是上,但是本地数据库可以连接,于是 ...

  4. java 通过jdbc连接MySQL数据库

    先了解下JDBC的常用接口 1.驱动程序接口Driver 每种数据库的驱动程序都应该提供一个实现java.sql.Driver接口的类,简称Driver类.通常情况下,通过java.lang.Clas ...

  5. JDBC连接MySQL数据库代码模板

    下面这个例子是最简单的JDBC连接MySQL数据库的例子. 一般步骤: 1.注册驱动: 2.建立连接: 3.创建语句: 4.处理结果: 5.释放资源. 注意: 1.软件开发环境:MyEclipse 8 ...

  6. PHP如何连接MySQL数据库

    * PHP连接MySQL数据库 * 准备工作 * 在XAMPP软件的安装目录/php/ext目录中 * php_mysql.dll和php_mysqli.dll文件必须存在 * 在XAMPP软件的安装 ...

  7. JSP连接MySQL数据库问题

    之前写了一大段,还说了一下具体JDBC连接数据库API的具体包的基本知识,哪知道自己手残不小心按了删除按钮.结果去看自动保存记录时,就只剩下下面这段了.好吧,其实最主要最核心的也就是下面这点了.具体如 ...

  8. java连接mysql数据库详细步骤解析

    java连接mysql数据库详细步骤解析      第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar      第二步:导入下载的J ...

  9. Java连接MySQL数据库——含步骤和代码

    工具:eclipse MySQL5.6 MySQL连接驱动:mysql-connector-java-5.1.27.jar 加载驱动: 1. 在工程目录中创建lib文件夹,将下载好的JDBC放到该文件 ...

随机推荐

  1. 前端框架对于未来web移动端的影响

    现在前端框架市场比较乱,各种各样的框架参差不齐,这给我带来了很多困惑,同样是很多朋友的困惑吧!因为前端框架有很多种,对于程序员来说选择学习是非常困难的,不可能有几十上百种都要学习吧,不过最好的办法就是 ...

  2. JAVAFX-3 开发应用

    理解布局 布局容器(Layoutcontainer)或面板(Pane)允许对JavaFX应用程序场景图中的UI控件进行灵活.动态的排布.JavaFX Layout API包括下列容器类: ● Bord ...

  3. .net中ThreadPool与Task的认识总结

    线程池和Task是多线程编程中两个经常使用的技术,大家在熟悉不过了.他们有什么关联关系?Task又是怎么工作的呢?估计很多时候会犯糊涂.通过翻阅资料,终于弄明白了,与大家分享一下.   工作线程与I/ ...

  4. 对java多线程里Synchronized的思考

    Synchronized这个关键字在多线程里经常会出现,哪怕做到架构师级别了,在考虑并发分流时,也经常会用到它.在本文里,将通过一些代码实验来验证它究竟是"锁"什么. 在启动多个线 ...

  5. git学习——Github关联(2)

    一.参考学习链接 1.重点看Github与Git的关联. http://www.cnblogs.com/schaepher/p/5561193.html#github 2.git的全面详细介绍. ht ...

  6. 矩阵的奇异值分解(SVD)(理论)

    矩阵的奇异值分解(Singular Value Decomposition,SVD)是数值计算中的精彩之处,在其它数学领域和机器学习领域得到了广泛的应用,如矩阵的广义逆,主分成分析(PCA),自然语言 ...

  7. React学习笔记--程序调试

    React学习笔记 二 程序调试   前面我们搭建好了React的基本开发环境,可以编写基本的React js程序了.但完成的开发环境肯定包含调试器,怎么调试用React编写的JS程序呢?有浏览器,比 ...

  8. java多线程核心技术——第四章总结

    第一节使用ReentrantLock类 1.1使用ReentrantLock实现同步:测试1 1.2使用ReentrantLock实现同步:测试2 1.3使用Condition实现等待/同步错误用法与 ...

  9. Java面试题集合(比较实用)

    1.Java集合框架是什么?说出一些集合框架的优点? 每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector.Stack.HashTable和Array.随着集合的广泛使用...... ...

  10. BigInteger详解

    在Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,理论上能够表示无线大的数,只要计算机内存足够大. 这两个类都在 java.math.* 包中,因此每次必须在 ...