首先, 在本地服务器中新建项目APP,依据第一讲中的步骤配置好thinkphp,这里为了测试方便,不分前台和后台模块,统一把模块路径设为'./APP/'。
1、新建数据库myapp,以及数据库表think_form;
2、在配置文件APP/Conf/config.php中写入:
<?php
return array(
//'配置项'=>'配置值'
'DB_TYPE'   => 'mysql', // 数据库类型
'DB_HOST'   => '127.0.0.1', // 服务器地址
'DB_NAME'   => 'myapp', // 数据库名
'DB_USER'   => 'root', // 用户名
'DB_PWD'    => '', // 密码
'DB_PORT'   => '3306', // 端口
'DB_PREFIX' => 'think_', // 数据库表前缀
);
?>
其中端口为字符串需要加引号,之前把3306看成int数据类型,结果一直搞不定;
3、在控制器APP/Lib/IndexAction.class.php中写入:
<?php
// 本类由系统自动生成,仅供测试用途
class IndexAction extends Action {
    public function index(){
$m=new Model('Form');
$arr=$m->select();
var_dump($arr[0]['title']);
    }
}
?>
注:上面的语句具体解释为:$m=new Model(数据库表后缀名);后缀名首字母大小不限。注意只能是数据库表后缀名,不能是完整的数据库表名,否则读取数据失败,显示数据为null。也可以采用$m=M(数据库表后缀名);或者$m=D(数据库表后缀名);
最后,在浏览器中运行http://127.0.0.1/APP/index.php/Index/index,如果成功,即可看到数据字段的数据。
再注:之前连接时在入口文件内没有加入define('APP_DEBUG', true);结果数据库始终读取失败,而加了之后忽然成功了,再次注释掉也可以读取。难道说这一道程序是必须的?搞不懂情况?反正thinkphp操作超蛋疼。
4、上面的操作基本可以读取数据库了,但对于MVC要把控制器C和视图V联系,还需要再加一道工序:
(1)在控制器APP/Lib/IndexAction.class.php中加入:
$this->assign('data',$arr[0]['title']);
$this->display();//此方法为在视图V中输出显示数据的必要条件。
(2)在APP/Tpl目录中新建Index目录(由于控制器中的类名为IndexAction ,此处必须为Index,如果要改成其他目录名,首先要把IndexAction类的Index改成其他字符串(首字母必须大写),文件名改为:目标字符串(如Str)+Action.class.php,如果要建立此控制器的视图,则要在Tpl目录下创建目录名为Str的目录,再在目录中创建文件),再在Index目录下新建index.html,写入HTML语句,加入{$data}变量(因为在控制器中通过assign方法为$data进行了定义和赋值,想分配变量可以使用assign方法)。
在浏览器中运行http://127.0.0.1/APP/index.php/Index/index,如果成功,即可看到数据字段的数据。
总之,thinkphp连接数据库超蛋疼!!记得加入define('APP_DEBUG', true);防止麻烦出现。
 
附1:
url的4种访问方式          //重点!
1.PATHINFO 模式 -- 重点!!!!!! http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2
2.普通模式
http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2
3.REWRITE模式
http://域名/项目名/模块名/方法名/键1/值1/键2/值2
4.兼容模式
http://域名/项目名/入口文件?s=模块名/方法名/键1/值1/键2/值2

http://127.0.0.1/APP/index.php/Index/index为第一种。 
 
附2:
控制器数据库操作CURD命令:
增 -C Create $m->add()
删 -D Delete $m->delete()
改 -U Update $m->save()
查 -R Read   $m->select()
 
附3:
模型遍历数组方法:
控制器的语句:public function index(){
$m=new Model('Form'); //$m=new Model(数据库表后缀名);实例化模型
$arr=$m->select();
//var_dump($arr[0]['title']);
//$name='ken';
//$this->assign('data',$name);
$this->assign('data',$arr);
$this->display();
    }
视图V的语句:
<h1>
   <volist name='data' id='vo'>
{$vo.id}<br>
{$vo.title}<br>
   </volist>
   </h1>
<volist>标签是模型遍历数组的关键,属性name为控制器中接收过来的后台变量,id为前台输出的实例对象变量。

thinkphp学习简易教程(二) thinkphp连接读取MySQL数据库的更多相关文章

  1. thinkphp学习简易教程(一) thinkphp创建项目

    1.在本地服务器根目录下创建项目目录,如命名为app: 2.把thinkphp的压缩包解压到与项目同级目录下,如app是放在目录APP下面,即项目目录路径为'APP/app/',则thinkphp应解 ...

  2. Ocelot简易教程(七)之配置文件数据库存储插件源码解析

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9852711.html 上篇文章给大家分享了如何集成我写的一个Ocelot扩展插件把Ocelot的配置存储 ...

  3. linux学习之centos(三):mysql数据库的安装和配置

    前言:mysql简介 说到数据库,我们大多想到的是关系型数据库,比如mysql.oracle.sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库, ...

  4. 利用PHP实现登录与注册功能以及使用PHP读取mysql数据库——以表格形式显示数据

    登录界面 <body><form action="login1.php" method="post"><div>用户名:&l ...

  5. Jmeter配置通过SSH连接的mysql数据库

    jmeter连接配置mysql数据库时,如果数据库服务器没有通过ssh连接,则只需要添加配置相应的jdbc参数就可以了.如果数据库服务器是通过SSH连接的,则需要通过中间远程连接工具来登录,此处使用的 ...

  6. jsp页面直接读取mysql数据库数据显示

    jsp页面直接读取mysql数据库数据显示: <%@page import="java.sql.ResultSet"%> <%@page import=" ...

  7. PHP连接局域网MYSQL数据库的简单实例

    PHP连接局域网MYSQL数据库的简单实例 [php] view plaincopy <?PHP /** * php连接mysql数据库 * by www.jbxue.com */ $conn= ...

  8. 连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的,

    连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的, 2018-03-12 17:08:52.532DEBUG[localhost-startStop-1]o.s.beans.factor ...

  9. 读取mysql数据库的数据,转为json格式

    # coding=utf-8 ''' Created on 2016-10-26 @author: Jennifer Project:读取mysql数据库的数据,转为json格式 ''' import ...

随机推荐

  1. 初学者--bootstrap(五)JavaScript插件(上)----在路上(6)

    jQuery 插件为 Bootstrap 的组件赋予了“生命”.可以简单地一次性引入所有插件,或者逐个引入到你的页面中. 一:首先要确认的是,单个还是全部引入: JavaScript 插件可以单个引入 ...

  2. 搭建LNAMP环境(三)- 源码安装Apache2.4

    上一篇:搭建LNAMP环境(二)- 源码安装Nginx1.10 1.yum安装编译apache需要的包(如果已经安装,可跳过此步骤) yum -y install pcre pcre-devel zl ...

  3. spring4mvc返回json(bean,list,map)

    因为spring3和spring4的mvc在前端返回json所需要的jar包不一样,所以索性写一篇关于spring4mvc在前端返回json的博文. 首先,新建一个web项目,项目格式如图所示: co ...

  4. [转]Linux tar 命令

    一.使用介绍 1.名词区分 打包:将一大堆文件或目录变成一个总的文件[tar命令] 压缩:将一个大的文件通过一些压缩算法变成一个小文件[gzip,bzip2等] Linux中很多压缩程序只能针对一个文 ...

  5. MindManger 2016 64位 破解版

    下载地址:http://pan.baidu.com/s/1mi7xkIO 如果失效请去 “毒逆天吧” 发个求助帖即可就有人补上

  6. 【WP8.1开发】用手机来控制电脑的多媒体播放

    为了用电脑看电影时方便控制,我就突发其想,做一个手机app来通过无线网络远程调节电脑上的音量.后来进行尝试成功后,我就想,光是调音量似乎单调了些,就把播放/暂停,上一首,下一首,等多媒体控制功能也加上 ...

  7. 用jquery.pager.js实现分页

    1.html <link href="/stylesheets/Pager.css" rel="stylesheet" type="text/c ...

  8. Eclipse迁移到Android studio步骤如下:

    一.从Eclipse中导出:1.将你的ADT插件版本升级到22.0以上.2.在Eclipse中,选择File-->Export.3.在弹出的导出窗口中,打开Android的文件夹,选择“Gene ...

  9. .Net 转战 Android 4.4 日常笔记(2)--HelloWorld入门程序

    我不知道人们为什么那么喜欢用HelloWorld来做为自己的第一个程序入门,为什么不是hello **其他的东西或者hi. 一.打开ADT 的Eclipse开发工具新建一个Android项目 New- ...

  10. MVC html.actionlink

    Html.ActionLink 在 LinkExtensions 类中,ActionLink方法参数说明: 简单来说捏 就是这样滴 参数                      类型         ...