项目做完了,总结下用到的php代码,从基础到复杂
1、操作mysql的函数库pdo.php文件:
<?php
$my_class_mysql_server_name_ = "127.0.0.1";
$my_class_mysql_user_name_ = "root";
$my_class_mysql_password_value_ = "123";
$my_class_mysql_databasename_value_ = "zlhbxtdb";
//PHP运行:runSQL($sql)
//参数化运行: runCSSQL($sql,$parameter,$parameterVal)
//PHP创建mysql数据表:addTable()
//PHP创建mysql数据库:addDB()
//连接mysql数据库:linkDB()
//查询: selectValue($sql)
//参数查询: selectCSValue($sql,$parameter,$parameterVal)
//PHP连接mysql数据库:
function linkDB(){
global $my_class_mysql_server_name_;
global $my_class_mysql_user_name_;
global $my_class_mysql_password_value_;
global $my_class_mysql_databasename_value_;
try
{
$conn = new PDO("mysql:host=".$my_class_mysql_server_name_.";dbname=".$my_class_mysql_databasename_value_, $my_class_mysql_user_name_, $my_class_mysql_password_value_);
echo "连接成功";
}
catch (PDOException $e)
{
echo $e->getMessage();
}
}
//参数查询
function selectCSValue($sql,$parameter,$parameterVal){
global $my_class_mysql_server_name_;
global $my_class_mysql_user_name_;
global $my_class_mysql_password_value_;
global $my_class_mysql_databasename_value_;
try
{
$conn = new PDO("mysql:host=".$my_class_mysql_server_name_.";dbname=".$my_class_mysql_databasename_value_, $my_class_mysql_user_name_, $my_class_mysql_password_value_);
$stm = $conn->prepare($sql);//"select * from usertable where username like :user"
//正确
$i=0;
for($i=0;$i<count($parameter);$i++)
{
$stm->bindValue($parameter[$i],$parameterVal[$i]);
}
//正确 $stm->bindParam(":user",$user);
//正确 $stm->bindValue(":user","jack");
//查询
$stm->execute();
$a = $stm->fetchAll();
return $a;
}
catch (PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
}
//参数化运行
function runCSSQL($sql,$parameter,$parameterVal){
global $my_class_mysql_server_name_;
global $my_class_mysql_user_name_;
global $my_class_mysql_password_value_;
global $my_class_mysql_databasename_value_;
//$sql = "insert into usertable values (:userv, :pw, :type)";
try
{
$conn = new PDO("mysql:host=".$my_class_mysql_server_name_.";dbname=".$my_class_mysql_databasename_value_, $my_class_mysql_user_name_, $my_class_mysql_password_value_);
$stm = $conn->prepare($sql);
for($i=0;$i<count($parameter);$i++)
{
$stm->bindParam($parameter[$i],$parameterVal[$i]);
}
$stm->execute();
//echo "数据插入成功";
}
catch (PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
}
//查询
function selectValue($sql){
global $my_class_mysql_server_name_;
global $my_class_mysql_user_name_;
global $my_class_mysql_password_value_;
global $my_class_mysql_databasename_value_;
try
{
$conn = new PDO("mysql:host=".$my_class_mysql_server_name_.";dbname=".$my_class_mysql_databasename_value_, $my_class_mysql_user_name_, $my_class_mysql_password_value_);
$rs = $conn-> query($sql);
$a = $rs->fetchAll();
return $a;
}
catch (PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
}
//PHP创建mysql数据库:
function addDB(){
global $my_class_mysql_server_name_;
global $my_class_mysql_user_name_;
global $my_class_mysql_password_value_;
global $my_class_mysql_databasename_value_;
try
{
$conn = new PDO("mysql:host=".$my_class_mysql_server_name_.";dbname=".$my_class_mysql_databasename_value_, $my_class_mysql_user_name_, $my_class_mysql_password_value_);
//设置 PDO 错误模式为异常 ,用 于抛出异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "create database mydb";
$conn->exec($sql);
echo "数据库创建成功<br>";
}
catch (PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
//关闭连接
$conn = null;
}
//PHP创建mysql数据表:
function addTable(){
global $my_class_mysql_server_name_;
global $my_class_mysql_user_name_;
global $my_class_mysql_password_value_;
global $my_class_mysql_databasename_value_;
try
{
$conn = new PDO("mysql:host=".$my_class_mysql_server_name_.";dbname=".$my_class_mysql_databasename_value_, $my_class_mysql_user_name_, $my_class_mysql_password_value_);
$conn -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "create table myfriend( id INT(6) UNSIGNED AUTO_INCR EMENT PRIMARY KEY, name VARCHAR(30) NOT NULL , email VARCHAR(50), sex CHAR(1) )";
$conn->exec($sql);
echo "数据表创建成功";
}
catch (PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
}
//PHP运行SQL语句:
function runSQL($sql){
global $my_class_mysql_server_name_;
global $my_class_mysql_user_name_;
global $my_class_mysql_password_value_;
global $my_class_mysql_databasename_value_;
try
{
$conn = new PDO("mysql:host=".$my_class_mysql_server_name_.";dbname=".$my_class_mysql_databasename_value_, $my_class_mysql_user_name_, $my_class_mysql_password_value_);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->exec($sql);
//echo "数据插入成功";
}
catch (PDOException $e)
{
echo $sql . "<br>" . $e->getMessage();
}
$conn = null;
}
//PHP插入多条记录:
function addMoveLIST(){
global $my_class_mysql_server_name_;
global $my_class_mysql_user_name_;
global $my_class_mysql_password_value_;
global $my_class_mysql_databasename_value_;
try
{
$conn = new PDO("mysql:host=".$my_class_mysql_server_name_.";dbname=".$my_class_mysql_databasename_value_, $my_class_mysql_user_name_, $my_class_mysql_password_value_);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
//开始事务
$conn->beginTransaction();
//sql语句
$conn->exec( "insert into usertable values ('c', 'c1', '22c')" );
$conn->exec( "insert into usertable values ('d', 'd1', '22d')" );
$conn->exec( "insert into usertable values ('e', 'e1', '22e')" );
//提交事务
$conn->commit();
echo "多条记录提交成功";
}
catch (PDOException $e)
{
//如果插入失败则回滚事务
$conn->rollBack();
echo $e->getMessage();
}
$conn = null;
}
?>
引入方法:include ('./pdo.php');
使用例子:
参数添加数据库:
$arr3 = array(":id",":title",":keyword",":jj",":zz",":sj",":cs",":text",":typeid",":nian",":yue",":type",":imgxz");
$arr4 = array($id,$_POST["title"],$_POST["keyword"],$_POST["jj"],$_POST["zz"],date("Y-m-d"),0,$_POST["content1"],$_POST["belong"],$_POST["nian"],str_replace("月","",$_POST["yue"]),$_POST["htmltype"],$imgxz);
runCSSQL("INSERT INTO webtext(id,title,keyword,jj,zz,sj,cs,text,typeid,nian,yue,type,imgxz) VALUES (:id,:title,:keyword,:jj,:zz,:sj,:cs,:text,:typeid,:nian,:yue,:type,:imgxz)", $arr3,$arr4);
echo("<script>alert('添加成功')</script>");
参数查询:
$arr1 = array(":user",":pw");
$arr2 = array($username,$password);
$val = selectCSValue("select * from usertable where username like :user and password like :pw",$arr1,$arr2);
参数修改:
$arr3 = array(":text",":id");
$arr4 = array($_POST['title'],$_POST['belong']);
runCSSQL("UPDATE webtype SET jieshao = :text WHERE dui = :id", $arr3,$arr4);
2、毫秒级时间戳,用来生成id
function getMillisecond() {
list($t1, $t2) = explode(' ', microtime());
return (float)sprintf('%.0f',(floatval($t1)+floatval($t2))*1000);
}
3、可以使用的缩略图生成,copy的代码(向作者致敬),需要安装gb2扩展,ubuntu安装方法:apt-get -y install php5-curl php5-gd,装完重启web服务器
/**
* 简单的生成缩略图函数(支持图片格式:gif、jpeg、png和bmp)
* @author xiaoshuoit@163.com
* @param string $src 源图片路径
* @param int $width 缩略图宽度(只指定高度时进行等比缩放)
* @param int $width 缩略图高度(只指定宽度时进行等比缩放)
* @param string $filename 保存路径(不指定时直接输出到浏览器)
* @return bool
*/
function img_create_small($src, $width = null, $height = null, $filename = null) {
if (!isset($width) && !isset($height))
return false;
if (isset($width) && $width <= 0)
return false;
if (isset($height) && $height <= 0)
return false;
$size = getimagesize($src);
if (!$size)
return false;
list($src_w, $src_h, $src_type) = $size;
$src_mime = $size['mime'];
switch($src_type) {
case 1 :
$img_type = 'gif';
break;
case 2 :
$img_type = 'jpeg';
break;
case 3 :
$img_type = 'png';
break;
case 15 :
$img_type = 'wbmp';
break;
default :
return false;
}
if (!isset($width))
$width = $src_w * ($height / $src_h);
if (!isset($height))
$height = $src_h * ($width / $src_w);
$imagecreatefunc = 'imagecreatefrom' . $img_type;
$src_img = $imagecreatefunc($src);
$dest_img = imagecreatetruecolor($width, $height);
imagecopyresampled($dest_img, $src_img, 0, 0, 0, 0, $width, $height, $src_w, $src_h);
$imagefunc = 'image' . $img_type;
if ($filename) {
$imagefunc($dest_img, $filename);
} else {
header('Content-Type: ' . $src_mime);
$imagefunc($dest_img);
}
imagedestroy($src_img);
imagedestroy($dest_img);
return true;
}
4、接收get参数:$_GET["id"]
接收post参数:$_POST["控件名"]
5、读取cookie:$_COOKIE["username"]
生成cookie:setcookie("username",$username);
6、跳转到某页:header("Location: backpage.php");
7、普通的php页面的form:<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
上传文件的form:<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post" enctype="multipart/form-data">
8、判断post是否有值:字符类的:if(isset($_POST['submit']))
上传文件类的:if ($_FILES["filename"]["error"] > 0)
9、判断点击了某个按钮:if(!empty($_POST['submit1'])){}if(!empty($_POST['submit2'])){}
10、判断上传文件类型:if ($_FILES["filename"]["type"] == "image/jpeg")
11、上传文件:move_uploaded_file($_FILES["filename"]["tmp_name"],"新文件在服务器的路径");
12、上传图片代码:
if ($_FILES["filename"]["type"] == "image/jpeg")
{
if ($_FILES["filename"]["error"] > 0)
{
echo "Return Code: " . $_FILES["filename"]["error"] . "<br />";
}
else
{
$ddd=$_FILES["filename"]["size"];
$newfilename="images/" . 新文件名 . ".jpg";
move_uploaded_file($_FILES["filename"]["tmp_name"],$newfilename);
echo "<script>alert('上传成功')</script>";
}
}
else
{
echo "<script>alert('文件类型错误')</script>";
}
13、取得多维数组的某维数据数量:count(数组名,维数)例子:count($val,0)
14、取得当前时间:$time = date('y-m-d h:i:s',time());
15、一个php生成xml的例子,copy的,向原作者致敬
<?php
//建立<root>元素
$response = $dom->createElement('root');
$dom->appendChild($response);
//建立<books>元素并将其作为<root>的子元素
$books = $dom->createElement('books');
$response->appendChild($books);
//为book创建标题
$title = $dom->createElement('title');
$titleText = $dom->createTextNode('PHP与AJAX');
$title->appendChild($titleText);
//为book创建isbn元素
$isbn = $dom->createElement('isbn');
$isbnText = $dom->createTextNode('1-21258986');
$isbn->appendChild($isbnText);
//创建book元素
$book = $dom->createElement('book');
$book->appendChild($title);
$book->appendChild($isbn);
//将<book>作为<books>子元素
$books->appendChild($book);
//在一字符串变量中建立XML结构
$xmlString = $dom->saveXML();
//输出XML字符串
echo $xmlString;
?>
16、取得字符串长度 strlen("www.sunchis.com");