zoukankan      html  css  js  c++  java
  • PHP成长之路之PHP连接MySql数据库(一)

    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);
    }
  • 相关阅读:
    WebContent的子目录里面的jsp文件无法将数据传递给Servlet
    MVC 与 三层架构
    使用命令行操作MySQL 及 语法
    JDBC
    字符典
    servlet 生命周期
    6 shell内置命令
    5shell中的数组
    4shell中的特殊变量
    3shell命令替换
  • 原文地址:https://www.cnblogs.com/dingxiansen/p/7693468.html
Copyright © 2011-2022 走看看