<?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";
}
}
}

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

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

    一.//连接方式访问数据库的主要步骤(利用DataReader对象实现数据库连接模式) 1.创建连接对象(连接字符串) SqlConnection con = new SqlConnection(Co ...

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

    private void Button_Click_1(object sender, RoutedEventArgs e) { //非链接方式访问数据库, //1创建连接对象(连接字符串) using ...

  3. 对比传统方式访问数据库和SpringData访问数据库

    我们在写代码的时候应该一边写一边测试,这样的话可以尽快的找到错误,在代码写多了之后去找错误的话不容易给错误定位 传统方式访问数据库 1:创建一个Maven web项目 2:修改pom.xml为以下内容 ...

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

    <body> <?php //面向对象的方式访问数据库 //造对象 $db = new MySQLi("localhost","root",& ...

  5. 2017.11.12 web中JDBC 方式访问数据库的技术

    JavaWeb------ 第四章 JDBC数据库访问技术 在JavaWeb应用程序中数据库访问是通过Java数据库连接(JavaDateBase Connectivity简称JDBC)数据库的链接一 ...

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

    用习惯了ADO.NET的方式去访问数据库,虽然ADO.NET写的代码没有EF简洁,可是也并不麻烦.而且EF在进行多表查询的那种方式是,EF需要先去数据库里定义外键,再进去一次代码生成,然后才能用INC ...

  7. 以Ajax的方式访问数据库

    一:以Ajax的方式显示数据 我们都知道,如果用Ajax程序去加载一个动态页,则加载的实际上是这个动态页执行完毕后生成的静态HTML代码字符串. 1.以原有的格式显示数据 <?php heade ...

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

    .Net Core中一个特别重要的特性就是依赖注入功能,那么我们在使用PetaPoco的时候是否也可以使用依赖注入特性呢? 回答当然是可以的啦.使用方法(两种注入方式)如下 services.AddS ...

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

    1. 使用方式:在Service层直接调用 package com.disappearwind.service; import org.springframework.beans.factory.an ...

随机推荐

  1. 前后台Json的转换

    jsp:JSON.stringify(params):params:表示数组 servlet:Store store = (Store) JSONObject.toBean(JSONObject.fr ...

  2. SpringMVC List绑定

    需求:成绩录入(录入多门课成绩,批量提交) 使用List接收页面提交的批量数据,通过包装pojo接收,在包装pojo中定义list<pojo>属性 public class ItemsQu ...

  3. js部分---运算符,if分支语句,for循环;switch case 的用法;

    ------------------------------------------运算符---------------------------------------------------- *数 ...

  4. 2016 Sichuan Province Programming Contest

    2016 Sichuan Province Programming Contest 代码 2016 Sichuan Province Programming Contest A. Nearest Ne ...

  5. POJ2125 Destroying The Graph (最小点权覆盖集)(网络流最小割)

                                                          Destroying The Graph Time Limit: 2000MS   Memo ...

  6. POJ 2186 Popular Cows(强连通)

                                                                  Popular Cows Time Limit: 2000MS   Memo ...

  7. jQuery 1.10.3 参考手册

    Jquery是轻量级的js库 ,它兼容CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+),jQuery2.0及后续版本将不再支持IE6/7 ...

  8. java定时框架:表达式设置

    Quartz中时间表达式的设置-----corn表达式 (注:这是让我看比较明白的一个博文,但是抱歉,没有找到原作者,如有侵犯,请告知) 时间格式: <!-- s m h d m w(?) y( ...

  9. spring源码学习【准备】之jdk动态代理和cglib动态代理的区别和性能

    一:区别:---->JDK的动态代理依靠接口实现,如果有些类并没有实现接口,则不能使用JDK代理,这就要使用cglib动态代理了.--->JDK的动态代理机制只能代理实现了接口的类,而不能 ...

  10. python设置字体颜色

    在开发项目过程中,为了方便调试代码,经常会向stdout中输出一些日志,默认的这些日志就直接显示在了终端中.而一般的应用服务器,第三方库,甚至服务器的一些通告也会在终端中显示,这样就搅乱了我们想要的信 ...