封装类的方式访问数据库(封装字符串、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";
}
}
}
封装类的方式访问数据库(封装字符串、json)的更多相关文章
- ADO.NET 连接方式和非链接方式访问数据库
一.//连接方式访问数据库的主要步骤(利用DataReader对象实现数据库连接模式) 1.创建连接对象(连接字符串) SqlConnection con = new SqlConnection(Co ...
- 非链接方式访问数据库--查询的数据集用Dataset来存储。
private void Button_Click_1(object sender, RoutedEventArgs e) { //非链接方式访问数据库, //1创建连接对象(连接字符串) using ...
- 对比传统方式访问数据库和SpringData访问数据库
我们在写代码的时候应该一边写一边测试,这样的话可以尽快的找到错误,在代码写多了之后去找错误的话不容易给错误定位 传统方式访问数据库 1:创建一个Maven web项目 2:修改pom.xml为以下内容 ...
- php 面向对象的方式访问数据库
<body> <?php //面向对象的方式访问数据库 //造对象 $db = new MySQLi("localhost","root",& ...
- 2017.11.12 web中JDBC 方式访问数据库的技术
JavaWeb------ 第四章 JDBC数据库访问技术 在JavaWeb应用程序中数据库访问是通过Java数据库连接(JavaDateBase Connectivity简称JDBC)数据库的链接一 ...
- ASP.NET MVC- EF返回连接池用ADO.NET方式访问数据库
用习惯了ADO.NET的方式去访问数据库,虽然ADO.NET写的代码没有EF简洁,可是也并不麻烦.而且EF在进行多表查询的那种方式是,EF需要先去数据库里定义外键,再进去一次代码生成,然后才能用INC ...
- 以Ajax的方式访问数据库
一:以Ajax的方式显示数据 我们都知道,如果用Ajax程序去加载一个动态页,则加载的实际上是这个动态页执行完毕后生成的静态HTML代码字符串. 1.以原有的格式显示数据 <?php heade ...
- PetaPoco在ASP.NET Core 2.2中使用注入方式访问数据库
.Net Core中一个特别重要的特性就是依赖注入功能,那么我们在使用PetaPoco的时候是否也可以使用依赖注入特性呢? 回答当然是可以的啦.使用方法(两种注入方式)如下 services.AddS ...
- Mybatis基于注解的方式访问数据库
1. 使用方式:在Service层直接调用 package com.disappearwind.service; import org.springframework.beans.factory.an ...
随机推荐
- 怎样将某一类型标识为适合绑定到 System.Web.UI.WebControls.ObjectDataSource 对象的对象
1.页面的代码如下: body> <form id="form1" runat="server"> <div> </div& ...
- 蓝牙(Profile)构成
蓝牙剖面(Profile)构成 蓝牙剖面(Profile)及其相互关系 蓝牙SIG定义13种蓝牙剖面及其相互关系如下图: 一个剖面若直接或间接采用了另一个剖面的部分或全部功能则称该剖面依赖于另一剖面. ...
- PAT (Basic Level) Practise:1017. A除以B
[题目链接] 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数.你需要输出商数Q和余数R,使得A = B * Q + R成立. 输入格式: 输入在1行中依次给出A和B,中间以1空格 ...
- hadoop问题锦集(一)-搭建集群环境时的常见问题
1.没有主机的路由 1.namenode与datanode之间ping不通了 2.防火墙得关闭: ufw status ufw disabled 2. ssh localhost ssh:connec ...
- 初识vi编辑器
vi基本概念既不介绍了,百度,wiki上都有.下面稍微总结下我所学的vi吧 1.vi分为三种状态:命令模式(command mode);插入模式(insert mode);底行模式(last line ...
- Python4周 入职培训的过程
这是我在过去几家公司招聘到工程师,Python入职培训的过程.时间分为4周,全部自学,仅提供大纲.适用于Web方向:1.Week1:读完<简明Python教程>,适应Python开发环境2 ...
- 232. Implement Queue using Stacks
Implement the following operations of a queue using stacks. push(x) -- Push element x to the back of ...
- html5的程序接口与元素变化
除了原先的DOM接口,HTML5增加了更多API,如:1. 用于即时2D绘图的Canvas标签2. 定时媒体回放3. 离线数据库存储4.文档编辑5. 拖拽控制6. 浏览历史管理元素变化新的解析顺序新的 ...
- linux脚本编程技术---8
一.什么是脚本 脚本是一个包含一系列命令序列的可执行(777)文本文件.当运行这个脚本文件时,文件中包含的命令序列将得到自动执行. 二.脚本编程 #!/bin/sh 首行固定格式 #!表明该脚本的的解 ...
- Codeforces Round #125 (Div. 2)
A. Hexadecimal's theorem 三个数没有限制,直接输出\(0\ 0\ n\). B. Special Olympics 分包含和外离情况,包含分2种情况. C. About Bac ...