先说一句:我写的代码没用到网上的db类库,那个类库很强大,但是我实在是没时间学了,我就写我用的上的几个小函数够用就好。此代码留作个人记录。
所有代码经过 新浪SAE平台调试通过
数据库 表名 test 里面有两个字段 id myName 这里小提一句,所有的sql语句,就直接上phpMyAdmin里面操作,然后就会出现sql语句代码,直接粘过来,就基本都能用了。
下面附上 dbclass.php
{public $link;//初始化数据连接
public functioninit()
{$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 ("
$row[0]$row[1]");}
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] ."
");
}
$db->closetable($rows);*/
?>
下面是test.php 里面就是添删改查的代码了
无标题文档<?phprequire_once ("dbclass.php");$db = newdbclass();$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 "显示列表
";while ( $row = $db->getrow($rows) )
{echo ($row['id'] . "-". $row[1] ."
");
}$db->closetable($rows);?>
添加数据
myname:修改数据
id:myname:
删除数据
id:又加入了个继承 第一次感觉到继承原来这么好使 太牛气了,更新下类库
无标题文档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 "显示列表
";while ( $row = $t->getrow($rows) )
{echo ($row['id'] . "-". $row[1] ."
");
}$t->closetable($rows);?>
添加数据
myname:修改数据
id:myname:
删除数据
id:{public $link;//初始化数据连接
public functioninit()
{$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 extendsdbclass
{//构造函数
function__construct()
{//parent::printName(); 通过parent关键字调用父类的方法,跟C#的base一样(但它调用的是子类的属性)
parent::init();
}functiongetAll()
{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 ("
$row[0]$row[1]");}
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] ."
");
}
$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参考手册 语言参考->类与对象