PHP后台基本语法使用笔记
1. PHP中报500错误时如何查看错误信息
//将如下的代码放入PHP的文件中
ini_set("display_errors","On");
error_reporting(E_ALL);//显示所有的错误信息
2. 数据库连接配置文件param.php
<?php
session_start();
$db_host_main="**.**.**.**";//主数据库地址
$db_user="root";//数据库用户名
$db_name="****";//数据库名
$db_passw="*****";//数据库密码 if(!isset($_SESSION["user"]))
{
exit("请登录!");
}
$czr=$_SESSION["user"]->poststuno;
$czrxm=$_SESSION["user"]->xm;
$cztime=date("Y-m-d H:i:s");
$mem_server="192.168.*.*";
$czip = $_SERVER["HTTP_X_FORWARDED_FOR"]; //操作人ip地址
连接数据
try {
//数据库连接
$pdo = new PDO("mysql:host=" . $db_host_main . ";dbname=" . $db_name . ";charset=utf8;", $db_user, $db_passw);
//设置字符集utf-8
$pdo->exec('set names utf8');
//echo "数据库连接成功!";
} catch (Exception $e) {
print "Error:" . $e->getMessage();
die();
}
3. 从前端获取form表单传进来的数据实例
$dzid = isset($_POST['dzid'] )? $_POST['dzid'] :"" ;
$dzname = isset( $_POST["dzname"]) ? $_POST["dzname"] : "";
$dzlocation = isset( $_POST["dzlocation"]) ? $_POST["dzlocation"] : "";
4. 插入数据之前查询数据库是否已经存在相同的数据
(1)方法1
//查询插入的数据已经存在
$sql="select * from 表名 where 字段= $字段 ";
//准备sql模板
$stmt = $pdo->prepare( $sql );
//绑定参数
$stmt->bindValue( 1, $字段 );
//执行预处理语句
$stmt->execute();
//推荐这种方式来获取查询结果
while ( $row = $stmt->fetch() ) {
if ($row)
{
exit("所查字段的数据已经存在,请重新输入.....");
}
}
(2)方法2
//czr是您要查询的字段
$sql="select * 表名 where czr=?; ";
$stmt=$pdo->prepare($sql);//准备要执行的SQL语句并返回一个 PDOStatement 对象
$stmt->execute(array($czr))or die("执行失败!") . json_encode($pdo->errorInfo());;//执行SQL
$resnum=$stmt->rowCount();//获取结果集行数
if($resnum>0){
echo "数据已存在,请勿重复添加!";
exit; }
5. 从前端获取的数据插入数据库的方法
(1) 方法1
//将数据插入到数据库中
$sql1 = "insert into 表名 (czr,czrxm,cztime,czip,state) values ('$czr','$czrxm','$cztime','$czip','$state') ";
$stmt1 = $pdo->exec($sql1);
if ($stmt1 == 1) {
echo "插入成功!";
} else {
echo "插入失败!" . json_encode($pdo->errorInfo());
}
(2) 方法2 使用预处理语句插入
$sql = "insert into 表名(stuno,xm,shenfen,fy,bjmc,yuanyin,zt,czr,czrxm,cztime) values (?,?,?,?,?,?,?,?,?,?) ";
$stmt = $pdo->prepare($sql);
$stmt->execute(array($stuno,$mem->xm,$shenfen,$mem->basic->fy,$mem->basic->bjmc,$yuanyin,1,$czr,$czrxm,$cztime)) or die("插入失败!");//执行SQL;
$affected_rows = $stmt->rowCount();
echo "成功";
(3) 方法3 绑定字段插入
//有post的时候执行数据插入
$sql = "insert into 表名(dzid,dzname,dzlocation,czip,czr,czrxm,cztime) values(:dzid,:dzname,:dzlocation,:czip,:czr,:czrxm,:cztime)"; //准备sql模板
$result = $pdo->prepare($sql);
//绑定参数
$result->bindParam(':dzid', $dzid);
$result->bindParam(':dzname', $dzname);
$result->bindParam(':dzlocation', $dzlocation);
$result->bindParam(':czip', $czip);
$result->bindParam(':czr', $czr);
$result->bindParam(':czrxm', $czrxm);
$result->bindParam(':cztime', $cztime);
//执行预处理语句
$result->execute() or die ('执行失败!');
if ($result) {
echo "数据插入成功!";
}else{
echo "数据插入失败!";
}
6. 数据后台打印输出
(1)以数组形式
$stmt = $pdo->prepare("SELECT * FROM daozha_add ");
if ($stmt->execute()) {
$row = $stmt->fetchAll();
$str=json_encode($row);//将数组进行json编码
print_r($str);//查看数组
}
(2)以JSON形式输出
$rs="";
$rs=$pdo->query("select * from 表名 where czr='$czr'");
echo json_encode($rs->fetchAll(PDO::FETCH_ASSOC),JSON_UNESCAPED_UNICODE);//JSON_UNESCAPED_UNICODE 是不进行Unicode转码输出
PHP后台基本语法使用笔记的更多相关文章
- Golang 语法学习笔记
Golang 语法学习笔记 包.变量和函数. 包 每个 Go 程序都是由包组成的. 程序运行的入口是包 main. 包名与导入路径的最后一个目录一致."math/rand" 包由 ...
- MarkDown语法 学习笔记 效果源码对照
MarkDown基本语法学习笔记 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. 下面将对Markdown的基本使用做一个介绍 目 ...
- 毕业设计 之 五 PHP语法学习笔记
毕业设计 之 四 PHP语法学习笔记 作者:20135216 平台:windows10 软件:XAMPP,DreamWeaver 说明:该笔记是对网站编程语言的详细学习 一.PHP基础 0. 关于环境 ...
- JavaScript基础——JavaScript语法基础(笔记)
JavaScript语法基础(笔记) 1.语言编码 JavaScript语言建立在Unicode字符集基础之上,因此脚本中,用户可以使用双字节的字符命名常量.变量或函数等. [示例] var 我=&q ...
- doy05循环语法学习笔记
doy05循环语法学习笔记 一.while循环语法: 1.基本用法示例 x = 1 while x <= 5: print(x) x += 1 2.死循环:永远不结束的循环 如:while Tr ...
- Mustache.js语法学习笔记
原文地址:http://www.cnblogs.com/flypig88/archive/2012/05/14/2497780.html 看了Mustache的github,学学其中的语法,做个笔记 ...
- python语法基础笔记
本篇笔记基于博主自己的的学习,理解,总结所写.很多东西可能存在误解,不能保证百分之百的正确. 1. 数据表达1.1 常量和变量1.2 数据类型1.2.1 基本数据元素1.2.1.1 数字1.2.1.2 ...
- MarkDown语法练习笔记
MarkDown使用规则 标题Markdown 支持两种标题的语法,类 Setext 和类 atx 形式 Setext 形式:用底线的形式 Selext形式采用: 1.最高阶标题(=)2.第二阶标题( ...
- markdown常用语法使用笔记
markdown是当下比较流行的一种编辑标记语言,很多系统都支持markdown语法来编辑文件内容,像gitbook之类的,一下是一些学习笔记. 1.开头用#的数量表示1-6阶的标题,结尾可以以任意数 ...
随机推荐
- RabbitMq 实现延时队列-Springboot版本
rabbitmq本身没有实现延时队列,但是可以通过死信队列机制,自己实现延时队列: 原理:当队列中的消息超时成为死信后,会把消息死信重新发送到配置好的交换机中,然后分发到真实的消费队列: 步骤: 1. ...
- How to use vscode to build a springboot project
How to use vscode to build a springboot project 首先截图一个springboot官网的一个教程说明截图.可以根据这里的指南去创建一个HelloWorld ...
- 1 select,poll和epoll
其实所有的I/O都是轮询的方法,只不过实现的层面不同罢了. 基本上select有3个缺点: 连接数受限 查找配对速度慢 数据由内核拷贝到用户态 poll改善了第一个缺点 epoll改了三个缺点. se ...
- (5)ASP.NET Core3.1 Ocelot服务质量
1.服务质量(Quality of Service) 对于微服务来说,熔断就是我们常说的"保险丝",意思是当服务出现某些状况时候,通过切断服务防止应用程序不断地执行可能会失败的操作 ...
- 微信支付特约商户进件中base64格式图片上传
微信图片上传接口地址:https://api.mch.weixin.qq.com/v3/merchant/media/upload 1.上传方法 1 using HttpHandlerDemo; 2 ...
- QQ群web前端分析三——pageSpeed
使用pageSpeed插件,试试页面分析,看看有没有什么问题.等会上图 第一个问题,大部分人使用默认图片,但是这个图片的url确不一样,导致重复请求了若干次,这个...., 第二个问题,图片没有指定默 ...
- Vue3教程:用 Vue3 开发小程序,这里有一份实际的代码案例!
前言 寻寻觅觅冷冷清清,凄凄惨惨戚戚. Vue 3 发布以后,最近也在学习和写一些 Vue3 的 demo 和项目,我也一直想着什么时候能在小程序里使用新特性? 于是我翻遍了市面上的小程序框架,如 u ...
- python脚本打包成rpm软件包
前言 软件最终都会有交付的形式,有的是用tar包,有个是以目录,有的是封成一个文件包,从大多数使用场景来说,直接打包成软件包的方式是最简单,也是最不容易出错的,路径可以在包里面写死了 实践 关于打包的 ...
- Java 获取微信小程序二维码(可以指定小程序页面 与 动态参数)
一.准备工作 微信公众平台接口调试工具 小程序的唯一标识(appid) 小程序的密钥(secret) 二.获取access_token 打开微信公众平台接口调试工具,在参数列表中输入小程序的appid ...
- 初识redis协议
有关redis协议信息(https://redis.io/topics/protocol) 搭建环境 //jedis连接客户端 public class RedisClient { public st ...