先说一句:我写的代码没用到网上的db类库,那个类库很强大,但是我实在是没时间学了,我就写我用的上的几个小函数够用就好。此代码留作个人记录。
所有代码经过 新浪SAE平台调试通过
数据库 表名 test 里面有两个字段 id myName 这里小提一句,所有的sql语句,就直接上phpMyAdmin里面操作,然后就会出现sql语句代码,直接粘过来,就基本都能用了。
下面附上 dbclass.php
<?php class dbclass { public $link; //初始化数据连接 public function init() { $link = mysql_connect ( SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS ) or die("error:".mysql_error()); mysql_select_db ( SAE_MYSQL_DB, $link ); mysql_set_charset("gbk"); } //关闭数据表 public function closetable($result) { mysql_free_result ( $result ); } //执行sql语句 得到数组 public function getsql($sql) { //$sql = "select id,myName from test"; return mysql_query ( $sql ); } //获取一行数据 public function getrow($result) { return mysql_fetch_array ( $result, MYSQL_BOTH ); } } /* 自己改的数据连接方式 require_once("dbclass.php");//先引入类库 $db = new dbclass(); $db->init(); $rows = $db->getsql("select id,myName from test"); $row = $db->getrow($rows); echo $row["id"]; $db->closetable($rows); */ /* 百度来的数据连接方式 $link = mysql_connect ( SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS ); if ($link) { mysql_select_db ( SAE_MYSQL_DB, $link ); mysql_set_charset("gbk"); $sql = "select id,myName from test"; $result = mysql_query ( $sql ); while ( $row = mysql_fetch_array ( $result, MYSQL_BOTH ) ) { echo ("<tr><td>$row[0]</td><td>$row[1]</td></tr>"); } mysql_free_result ( $result ); } else { echo "数据库连接KO"; } */ /* 自己改的带列表的输出 require_once("dbclass.php"); $db = new dbclass(); $db->init(); $rows = $db->getsql("select id,myName from test"); while ( $row = $db->getrow($rows) ) { echo ($row['id'] . "-". $row[1] ."<br>"); } $db->closetable($rows); */ ?>
下面是test.php 里面就是添删改查的代码了
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> </head> <body> <?php require_once("dbclass.php"); $db = new dbclass(); $db->init(); //添加数据代码 if($_POST["do"] == "insert") $rows = $db->getsql("insert into test (id,myName) values (NULL,'".$_POST["myname"]."')"); //修改数据代码 if($_POST["do"] == "modify") $rows = $db->getsql("UPDATE test SET myName = '".$_POST["myname"]."' WHERE id =".$_POST["id"]." LIMIT 1"); //删除数据代码 if($_POST["do"] == "del") $rows = $db->getsql("DELETE FROM test WHERE id = ".$_POST["id"]." LIMIT 1"); //显示数据代码 $rows = $db->getsql("select id,myName from test"); echo "显示列表<br><br>"; while ( $row = $db->getrow($rows) ) { echo ($row['id'] . "-". $row[1] ."<br>"); } $db->closetable($rows); ?> <p>添加数据</p> <form id="form1" name="form1" method="post" action=""> myname: <input name="myname" type="text" id="myname" /><input name="" type="submit" value="提交" /> <input name="do" type="hidden" id="do" value="insert" /> </form> <p>修改数据</p> <form id="form2" name="form2" method="post" action=""> id: <input name="id" type="text" id="id" /> myname: <input name="myname" type="text" id="myname" /><input name="" type="submit" value="提交" /> <input name="do" type="hidden" id="do" value="modify" /> </form> <p>删除数据</p> <form id="form3" name="form3" method="post" action=""> id: <input name="id" type="text" id="id" /><input name="" type="submit" value="提交" /> <input name="do" type="hidden" id="do" value="del" /> </form> </body> </html>
又加入了个继承 第一次感觉到继承原来这么好使 太牛气了,更新下类库
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> </head> <body> <?php require_once("dbclass.php"); $t = new testClass(); //添加数据代码 if($_POST["do"] == "insert") $rows = $t->insert($_POST["myname"]); //修改数据代码 if($_POST["do"] == "modify") $rows = $t->modify($_POST["id"],$_POST["myname"]); //删除数据代码 if($_POST["do"] == "del") $rows = $t->del($_POST["id"]); //显示数据代码 $rows = $t->getAll(); echo "显示列表<br><br>"; while ( $row = $t->getrow($rows) ) { echo ($row['id'] . "-". $row[1] ."<br>"); } $t->closetable($rows); ?> <p>添加数据</p> <form id="form1" name="form1" method="post" action=""> myname: <input name="myname" type="text" id="myname" /><input name="" type="submit" value="提交" /> <input name="do" type="hidden" id="do" value="insert" /> </form> <p>修改数据</p> <form id="form2" name="form2" method="post" action=""> id: <input name="id" type="text" id="id" /> myname: <input name="myname" type="text" id="myname" /><input name="" type="submit" value="提交" /> <input name="do" type="hidden" id="do" value="modify" /> </form> <p>删除数据</p> <form id="form3" name="form3" method="post" action=""> id: <input name="id" type="text" id="id" /><input name="" type="submit" value="提交" /> <input name="do" type="hidden" id="do" value="del" /> </form> </body> </html>
<?php class dbclass { public $link; //初始化数据连接 public function init() { $link = mysql_connect ( SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS ) or die("error:".mysql_error()); mysql_select_db ( SAE_MYSQL_DB, $link ); mysql_set_charset("gbk"); } //关闭数据表 public function closetable($result) { mysql_free_result ( $result ); } //执行sql语句 得到数组 public function getsql($sql) { //$sql = "select id,myName from test"; return mysql_query ( $sql ); } //获取一行数据 public function getrow($result) { return mysql_fetch_array ( $result, MYSQL_BOTH ); } } class testClass extends dbclass { //构造函数 function __construct() { //parent::printName(); 通过parent关键字调用父类的方法,跟C#的base一样(但它调用的是子类的属性) parent::init(); } function getAll() { return parent::getsql("select id,myName from test"); } function insert($myName) { parent::getsql("insert into test (id,myName) values (NULL,'".$myName."')"); } function modify($id,$myName) { parent::getsql("UPDATE test SET myName = '".$myName."' WHERE id =".$id." LIMIT 1"); } function del($id) { parent::getsql("DELETE FROM test WHERE id = ".$id." LIMIT 1"); } } /* 自己改的数据连接方式 require_once("dbclass.php");//先引入类库 $db = new dbclass(); $db->init(); $rows = $db->getsql("select id,myName from test"); $row = $db->getrow($rows); echo $row["id"]; $db->closetable($rows); */ /* 百度来的数据连接方式 $link = mysql_connect ( SAE_MYSQL_HOST_M . ':' . SAE_MYSQL_PORT, SAE_MYSQL_USER, SAE_MYSQL_PASS ); if ($link) { mysql_select_db ( SAE_MYSQL_DB, $link ); mysql_set_charset("gbk"); $sql = "select id,myName from test"; $result = mysql_query ( $sql ); while ( $row = mysql_fetch_array ( $result, MYSQL_BOTH ) ) { echo ("<tr><td>$row[0]</td><td>$row[1]</td></tr>"); } mysql_free_result ( $result ); } else { echo "数据库连接KO"; } */ /* 自己改的带列表的输出 require_once("dbclass.php"); $db = new dbclass(); $db->init(); $rows = $db->getsql("select id,myName from test"); while ( $row = $db->getrow($rows) ) { echo ($row['id'] . "-". $row[1] ."<br>"); } $db->closetable($rows); */ ?>
现在再用testClass生成对象的时候 就完全看不见sql语句了。
-------------------------------
<?php ?> php内置环境
echo() 输出函数
strpos() 函数 寻找一个字符串在另外一个字符串里是否存在
$_POST['name'] 获取一个post的变量
$_GET['id'] 获取一个get的变量
// /* */ # 注释语句
$ 变量名前面都要加的一个yd符号
gettype($a_str) 查看某一个变量的类型
is_int() is_string() 等等是查看是否是某个变量类型
settype($bar, "string"); 强制转换变量类型
== 双等号是判定是否相等
var_dump() 打印变量的相关信息
. 字符串连接符
& 引用赋值 例如 $foo = 'Bob';$bar = &$foo; 这样就是地址引用赋值
global 全局变量定义符 php默认内部变量和外部变量绝交啊 除非重新定义
static $a = 0; 静态变量赋值 第一次定义后就不会再定义了
$$ 可变变量 差不多相当引用 例 $a='hello'; $$a='work';//等同 $hello='work';
${$a[1]} 可变变量当遇到数组的时候 需要{}包含确保准确性
$_SERVER['PHP_SELF']; 自身页面地址
$_COOKIE['count'] 读取cookie
setcookie('count', $count, time()+3600); 写入cookie
const CONSTANT = 'Hello World'; 定义常量
__LINE__ __FILE__ __DIR__ __FUNCTION__ __CLASS__ __METHOD__ __NAMESPACE__ 魔术常量
.= 用于字符串拼接
看到 php5.3参考手册 语言参考->类与对象