在SAE上学php 别的先不弄,先上php调用mysql的 添删改查的代码吧 又加了个继承

先说一句:我写的代码没用到网上的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参考手册 语言参考->类与对象

---------------------------------------------
生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对自己行动的嘉奖。
↑面的话,越看越不痛快,应该这么说:

生活的意义就是你自己知道你要做什么,明确目标。没有目标,后面都是瞎扯!
原文地址:https://www.cnblogs.com/pengchenggang/p/2889730.html