封装类的方式访问数据库(封装字符串、json)

<?php
class DBDA
{
    public $host="localhost";//服务器地址
    public $uid="root";//用户名
    public $pwd="";//密码

    public $conn;//连接对象
    //操作数据库的方法
    //$sql代表需要执行的SQL语句
    //$type代表SQL语句的类型,1代表查询,0代表增删改
    //$db代表要操作的数据库名称
    //如果是查询,返回二维数组
    //如果是其他语句,返回true或false
    function __construct($db="mydb")
    {
        //造连接对象
        $this->conn = new MySQLi($this->host,$this->uid,$this->pwd,$db);
        //一个属于这个类的对象不能直接调用另一个类的成员,可以在此类中创建那个类的成员变量,该对象调用此成员变量,再调用那个类的方法
    }
    public function Query($sql,$type=1){
        //判断是否出错
        !mysqli_connect_error() or die("连接失败!");
        //执行SQL语句
        $result = $this->conn->Query($sql);
        //判断SQL语句类型
        if($type==1)        {
            //如果是查询语句,返回结果集的二维数组
            return $result->fetch_all();
        }else{
            //如果是其他语句,返回true或false
            return $result;
        }
    }

    //Ajax调用返回JSON
    public function JsonQuery($sql,$type=1,$db="mydb"){
        //定义数据源
        $dsn = "mysql:dbname={$db};host={$this->host}";
        //造pdo对象
        $pdo = new PDO($dsn,"{$this->uid}","{$this->pwd}");
        //准备执行SQL语句
        $st = $pdo->prepare($sql);
        //执行预处理SQL语句
        if($st->execute()){
            if($type==1){
                $sttr = $st->fetchAll(PDO::FETCH_ASSOC);
                return json_encode($attr);
            }else{
                if($st){
                    return "OK";
                }else{
                    return "NO";
                }
            }
        }else{
            echo "执行失败!";
        }
    }

    //Ajax调用返回字符串
    public function StrQuery($sql,$type=1){
        //判断连接是否成功
        !mysqli_connect_error() or die("连接失败!");
        //执行SQL语句
        $result = $this->conn->query($sql);
        //判断SQL语句类型
        if($type==1){
            $attr = $result->fetch_all();
            $str = "";
            //如果是查询语句返回字符串
            for($i=0;$i<count($attr);$i++){
                for($j=0;$j<count($attr[$i]);$j++){
                    $str = $str.$attr[$i][$j];
                    $str = $str."^";
                }
                $str = substr($str,0,strlen($str)-1);
                $str = $str."|";
            }
            $str = substr($str,0,strlen($str)-1);
            return $str;
        }else{
            //如果是其他语句,返回true或false
            if($result){
                return "OK";
            }else{
                return "NO";
            }
        }
    }

    function PdoQuery($sql,$type=1,$db="mydb"){
        //造数据源
        $dns = "mysql:host={$this->host};dbname={$db}";
        //造pdo对象
        $pdo = new PDO($dns,$this->uid,$this->pwd);
        //准备一条SQL语句
        $stm = $pdo->prepare($sql);
        //执行预处理语句
        $r = $stm->execute();
        if($r){
            if($type==1){
                return $stm->fetchAll();
            }else{
                return "OK";
            }
        }else{
            return "NO";
        }
    }
}
时间: 2024-10-09 04:08:18

封装类的方式访问数据库(封装字符串、json)的相关文章

ADO.NET 连接方式和非链接方式访问数据库

//连接方式访问数据库的主要步骤 1.创建连接对象(l链接字符串) 2.创建命令对象(设置Command对象的几个属性值) 3.打开连接 4.发送命令 5.处理数据 6.关闭连接 //非链接方式访问数据库 1/创建连接对象 2.创建数据适配器对象 3.打开连接 4.发送命令 5.关闭连接

非链接方式访问数据库--查询的数据集用Dataset来存储。

private void Button_Click_1(object sender, RoutedEventArgs e) { //非链接方式访问数据库, //1创建连接对象(连接字符串) using (SqlConnection conn = new SqlConnection(SQLHelper.ConnectionString)) { //2.创建数据适配器对象 using (SqlDataAdapter sda = new SqlDataAdapter("select * from St

srping-data学习笔记一(传统方式访问数据库实现和弊端分析)

spring-data是一系列项目的集合,涵盖访问关系型.非关系型等各种数据源的子项目 spring data jpa 关系型 spring data mongo db spring data redis spring data solr 全文检索,基于lucene 其他 使用原始JDBC方式操作数据库 1)创建Maven项目 maven工程的目录结构 添加依赖 <dependency> <groupId>mysql</groupId> <artifactId&g

ASP.NET MVC- EF返回连接池用ADO.NET方式访问数据库

用习惯了ADO.NET的方式去访问数据库,虽然ADO.NET写的代码没有EF简洁,可是也并不麻烦.而且EF在进行多表查询的那种方式是,EF需要先去数据库里定义外键,再进去一次代码生成,然后才能用INCLUDE方法进行多表关联查询.我不太喜欢那样,还不如老老实实写做SQL语句. 所以ADO.NET 不能完成不用掉.那么怎么将EF和ADO.NET结合. 其实很简单,只要将EF的连接池返回成ADO.NET的SQLCONNECTION.然后就可以用ADO.NET的方式来写了. protected voi

php-面向对象的方式访问数据库

<?php //面向对象访问数据库 //造对象 $dx=new MySQLi("localhost","root","123","nation"); //判断连接是否成功 /*if(mysqli_connnect_error()) { echo "连接失败"; exit(); //die("连接失败"); }*/ !mysqli_connect_error() or die(&qu

JAVA传统方式访问数据库

使用idea进行操作: 1)创建maven项目 选择maven仓库,选择自己maven安装位置,user settings file为安装maven下conf文件夹内的settings.xml . local repository是本地仓库,设置好后点击next 设置项目名称 2)添加依赖 pom.xml下添加依赖包 3)JDBC连接 不建议将配置写入代码中  所以在resources下创建db.properties 此处mysql8.0以上版本的driver为com.mysql.cj.jdbc

以Ajax的方式访问数据库

一:以Ajax的方式显示数据 我们都知道,如果用Ajax程序去加载一个动态页,则加载的实际上是这个动态页执行完毕后生成的静态HTML代码字符串. 1.以原有的格式显示数据 <?php header("Content-type: text/html; charset=gb2312"); include('conn.php'); $result=$conn->query("Select * From lyb limit 4 "); while($row=$r

PetaPoco在ASP.NET Core 2.2中使用注入方式访问数据库

.Net Core中一个特别重要的特性就是依赖注入功能,那么我们在使用PetaPoco的时候是否也可以使用依赖注入特性呢? 回答当然是可以的啦.使用方法(两种注入方式)如下 services.AddScoped<IDatabase>( x => { var connectionStrnig = Configuration["ConnectionStrings:MySQL:MvcMySQL"]; var configuration = DatabaseConfigura

Mybatis基于注解的方式访问数据库

1. 使用方式:在Service层直接调用 1 package com.disappearwind.service; 2 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.stereotype.Repository; 5 import org.springframework.stereotype.Service; 6 7 import com.disappea