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转码输出