首先, 在本地服务器中新建项目APP,依据第一讲中的步骤配置好thinkphp,这里为了测试方便,不分前台和后台模块,统一把模块路径设为'./APP/'。

1、新建数据库myapp,以及数据库表think_form;

2、在配置文件APP/Conf/config.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中写入:

// 本类由系统自动生成,仅供测试用途

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(数据库表后缀名);

再注:之前连接时在入口文件内没有加入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方法)。

总之,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的语句:

{$vo.id}

{$vo.title}

标签是模型遍历数组的关键,属性name为控制器中接收过来的后台变量,id为前台输出的实例对象变量。

tp连接mysql mysql_thinkphp学习简易教程(二) thinkphp连接读取MySQL数据库相关推荐

  1. mysql循环查询一个表中的数据并进行修改_JavaScript学习笔记(二十四)-- MYSQL基础操作...

    MYSQL mysql 是一个数据库的名字 和 php 合作的比较好的数据库 之前我们说过一个问题,前端向后端索要数据,后端就是去数据库中查询数据,返回给前端 接下来就聊聊使用 php 操作数据库 M ...

  2. Polyworks脚本开发学习笔记(十二)-输出和读取文本文件

    Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...

  3. thinkphp5连接数据库mysql_ThinkPHP学习(三)配置PHP5支持MySQL,连接MySQL数据库

    配置PHP5支持MySQL 打开PHP配置文件"F:\PHP\php5328Win32\php.ini",查找"extension=php_mysql.dll" ...

  4. js 连接mysql_搭建node服务(二):操作MySQL

    为了进行复杂信息的存储和查询,服务端系统往往需要数据库操作.数据库分为关系型数据库和非关系型数据库,关系型数据库有MySQL.Oracle.SQL Server等,非关系型数据库有Redis(常用来做 ...

  5. 链接mysql_JavaScript学习笔记(二十四)-- MYSQL基础操作

    MYSQL mysql 是一个数据库的名字 和 php 合作的比较好的数据库 之前我们说过一个问题,前端向后端索要数据,后端就是去数据库中查询数据,返回给前端 接下来就聊聊使用 php 操作数据库 M ...

  6. 使用码云和博客园学习简易教程

    有了<使用开源中国(码云)托管代码>和<使用博客园进行学习>, 不少同学可以使用使用码云和博客园来学习了,也有不少同学还是误用.我以一周的学习过程为例,写一个step by s ...

  7. Mysql 索引(学习笔记十二)

    MySQL 索引 MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度. 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索 ...

  8. mysql phpwind_【phpwind教程:Linux Apache php MySQL GD PHPWind 集成环境配置】-phpwind教程-【零度中国】...

    继PHPWind Wamp 1.0 后,PHPWind 开发团队总结多年Linux下web环境安装的经验,推出全新软件包PHPWind LAMP 1.0. 为了获得更好.更灵活的配置效果,PHPWin ...

  9. mysql 6.2 安装教程_CentOS 6.2 安装 MySQL 5.7.28的教程(mysql 笔记)

    1.环境准备 1.MySQL 安装路径:/usr/local 2.CentOS 6.2 服务器(64 bit) 3.MySQL 5.7.28 下载(64bit) wget https://cdn.my ...

最新文章

  1. 资源 | 机器学习必知的15大框架,欢迎补充!
  2. java 中ln是什么意思_JavaBean命名规范
  3. Vue笔记(五):Vuex
  4. 阿里巴巴的 Kubernetes 应用管理实践经验与教训
  5. 莒南机器人_莒南42项重点建设项目公布!一定有你关注的
  6. ul li前面的点怎么变大_硅片尺寸变大,生产成本降低,光伏电池生产商转向更大尺寸硅片...
  7. android 开发如何做内存优化
  8. 创下新的纪录 京东618累计下单金额超3438亿元
  9. 【Tensorflow、Keras】关于Reshape层小结(部分问题未解决)
  10. Vue中watch用法详解
  11. 厉害了,盘点那些改变世界的代码!
  12. html关联程序怎么设置,Win10预览版10102系统中如何设置IE浏览器的关联程序【图文】...
  13. 计算机word怎么设置页眉,Word怎么设置长文档的页眉页脚?_计算机办公软件知识...
  14. 网络图怎么画?简单专业的网络图绘制方法
  15. java jersey_Jersey框架
  16. SUSE常见问题解决办法
  17. Ubuntu 搜狗输入法 双拼输入法
  18. 如何识一个人的技术能力和水平?
  19. 台式机1080ti最低多少起_配一台1080ti的电脑要多少钱,不是土豪,最低
  20. Java解析PDF文件(PDFBOX、itext解析PDF)导出PDF中的子图片,去除PDF中的水印

热门文章

  1. SpringData ES中字段名和索引中的列名字不一致导致的无法查询数据的解决方法
  2. hadoop在子节点上没有datanode进程
  3. 基础提供程序在 Open 上失败
  4. 微软:本周三个安全更新 暂不会修正Excel漏洞
  5. CSS 如何让 height:100%; 起作用
  6. 根据 xsd 生成 jaxb java 类
  7. UNIX环境高级编程8.9竞争条件
  8. 使用笛卡尔积 cross join解决傻傻的问题
  9. 关于const记录类型全局变量赋初值的问题
  10. pve安装黑群晖直通硬盘_基于ProXmoX VE的虚拟化黑群晖6.2安装,硬盘直通