phpcms v9是基于mvc模式开发的,所以我们按照其套路到模型层程序中去找就行。在/phpcms/model目录下存放着与数据表名称一致的模型成文件,随意打开一个,你会看到都继承了model这个类,那么找到它,路径:/phpcms/libs/classes/model.class.php。对于数据库的增删改查方法都在这里面了,列举如下:
成都创新互联公司专注于天全企业网站建设,成都响应式网站建设公司,商城网站制作。天全网站建设公司,为天全等地区提供建站服务。全流程定制网站设计,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
insert() 增加数据、delete()删除指定条件数据、listinfo()读取支持翻页的多条数据、select()读取多条数据、update()更新数据。
当然,还有很多方法,以及各方法的传参各代表什么意义都有详细的注释看看就会明白的。
那么我们在控制器中应该如何引入一个数据表的model并对其进行数据操作呢,例如我在首页控制器中获取最近注册的10个会员账号信息,可以这么写:
$member_db = pc_base::load_model("members_model");
!--使用pc_base的load_model方法进行加载指定的数据表模型,感觉像TP3.2里的M()函数--
$member_list = $member_db-select(array('islock'=0),"*",10,"id desc");
!--使用对应的方法获取数据--
就演示到这里吧,如果有mvc架构基础应该一看就懂的,更多的关于phpcms的二次开发深入可以参考官方开发手册、代码中的注释说明以及iphpcms里的二次开发视频教程。
?php
$con = mysql_connect("localhost:3306","root","");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$result = mysql_query("SELECT * FROM user");
echo "table border='1'
tr
thUsername/th
thPassword/th
/tr";
while($row = mysql_fetch_array($result)) {
echo "tr";
echo "td" . $row['username'] . "/td";
echo "td" . $row['password'] . "/td";
echo "/tr";
}
echo "/table";
mysql_close($con);
?
从服务器中获取用户所有信息(SQL SELECT语句)并以表格形式出现
?php
$con = mysql_connect("localhost","root","");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
mysql_query("DELETE FROM user WHERE username = '$_POST[username]'");
mysql_close($con);
?
删除该用户所有信息delete.php
?php
$con = mysql_connect("localhost:3306","root","");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
$sql = "INSERT INTO user (username,password)
VALUES
('$_POST[username]','$_POST[password]')";
if (!mysql_query($sql,$con)) {
die('Error: ' . mysql_error());
}
echo "1 record added";
mysql_close($con);
?
注册一个新用户insert.php
?php
$con = mysql_connect("localhost","root","");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("test", $con);
mysql_query("UPDATE user SET password = '$_POST[password]' WHERE username = '$_POST[username]'");
mysql_close($con);
?
修改一个用户密码update.php
html
head
titleFORM/title
/head
body
br /
h1Insert:/h1
form action="insert.php" method="post"
username:input type="name" name="username"/
br /
password:input type="password" name="password"/
input type="submit" value="submit"/
/form
br /hr /br /
h1Delete/h1
form action="delete.php" method="post"
username:input type="name" name="username" /
br /
Are you sure?input type="submit" value="sure" /
/form
br /hr /br /
h1Update/h1
form action="update.php" method="post"
username:input type="name" name="username"/
br /
You want to change your password into:input type="password" name="password"/
input type="submit" value="submit"/
/form
br /hr /br /
/body
/html
以上三个功能的提交源Operate.html
php有专门的sql server操作函数,举个简单的例子,是查询的
$serverName = "localhost"; //数据库服务器地址
$uid = "root"; //数据库用户名
$pwd = "123456"; //数据库密码
$connectionInfo = array("UID"=$uid, "PWD"=$pwd, "Database"='databasename');
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn == false){
echo "连接数据库失败!";
die( print_r( sqlsrv_errors(), true));
}
$sql = "select * from user";
$query = sqlsrv_query( $conn, $sql , array(), array( "Scrollable" = SQLSRV_CURSOR_KEYSET ));
$num_rows = sqlsrv_num_rows($query);
if($num_rows 0){
while ($row = sqlsrv_fetch_array($query)){
echo $row['aaaa'];
}
}
其它的操作也同理,举一反三
数据库的增删改查,也就是数据存储的操作,应该是php最重要的功能。就实现来说不算是什么复杂和难搞的技术。但是俗话说的好,最简单的也是最复杂的。当遇到一些复杂的业务逻辑时,这简单的增删改查,也会变的极其复杂,甚至变成整个项目的核心技术。
其实说到这里,你应该就能理解了,PHP,其实也是所有编程语言中,最复杂最难搞的,其实是业务逻辑。你要实现一个功能,只要是能实现的,一般网上都有会一些demo,但是你要处理的业务需求,就需要用自己的经验来解决了,甚至有些客户连自己真正的需求也不知道,他们只能说出他们所想要实现的功能大概长什么样子,功能怎么实现,这可不是查查资料就可以找到的。
class sqlHelper{ \x0d\x0a public $conn; \x0d\x0a public $dbname="数据库名称"; \x0d\x0a public $username="数据库用户名"; \x0d\x0a public $password="数据库密码"; \x0d\x0a public $host="localhost"; \x0d\x0a //连接数据库 \x0d\x0a public function __construct(){ \x0d\x0a $this-conn=mysql_connect($this-host,$this-username,$this-password); \x0d\x0a if(!$this-conn){ \x0d\x0a die("连接失败".mysql_error()); \x0d\x0a } \x0d\x0a mysql_select_db($this-dbname,$this-conn); \x0d\x0a } \x0d\x0a //执行查询语句 \x0d\x0a public function execute_dql($sql){ \x0d\x0a $res=mysql_query($sql,$this-conn); \x0d\x0a return $res; \x0d\x0a } \x0d\x0a //执行增填改语句 \x0d\x0a public function execute_dml($sql){ \x0d\x0a $b=mysql_query($sql,$this-conn); \x0d\x0a if(!$b){ \x0d\x0a return 3; \x0d\x0a }else{ \x0d\x0a if(mysql_affected_rows($this-conn)){ \x0d\x0a return 1;//表示OK \x0d\x0a }else{ \x0d\x0a return 2;//表示没有行收到影响 \x0d\x0a } \x0d\x0a } \x0d\x0a }\x0d\x0a}