今天有一个朋友问我thinkphp的这个问题,刚好百度搜索到你这个问题。已经解决。就帮你解答一下这个问题。
首先我尝试在入口文件封装一个加密函数,我用php des 加密,然后在配置文件configphp调用。然后在控制器里面使用,打印配置文件:dump(C());//输出所有的配置文件信息, 虽然能看到正确的数据用户名和密码,但是会报错。失败告终。
我说一下我的解决方法。很简单。
1:把配置文件里面的用户名,密码,数据库名瞎写一写,别人看到你的代码的配置文件看到的就是错误的数据库名和密码了。比如:
'DB_NAME' => 'SB', // 数据库名
'DB_USER' => 'ni_da_ye', // 用户名
'DB_PWD' => 'da_da_bi', // 密码
在每个控制器文件里面。加入一段代码。
比如你的IndexControllerclassphp文件。加下面的代码。
/ 初始化方法/
public function __construct(){
parent::__construct();
C("DB_NAME",decrypt('712349721937491237'));//数据库名,
C('DB_USER',decrypt('712349721937491237'));//用户名
C('DB_PWD',decrypt('712349721937491237'));//密码
}
看清楚了吗?
decrypt()这个函数就是我封装的一个加密函数,亲自测试没有错误。可能会牺牲一些性能。但是保证了用户名,密码,数据库名没有泄露。甚至你都可以把数据库连接地址也加密一下。希望能帮到你。
PHP加密函数可以考虑用des,aes这些可逆加密。别用什么md4,md5
先找到configphp文件,如图:
然后打开配置文件并在其中配置数据库的信息,如下代码:
<phpreturn array( //'配置项'=>'配置值' 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => '127001', // 服务器地址 'DB_NAME' => 'tpshow', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => 'root', // 密码 'DB_PORT' => '3306', // 端口 'DB_PREFIX' => 'tp_' // 数据库表前缀);然后在应用的Home的Controller中,如下图的文件
<phpnamespace Home\Controller;use Think\Controller;class IndexController extends Controller { public function index(){ $db = M("show"); // 实例化show对象 $data = $db->find();//读取一条数据 dump($data);//打印数据 }}
ThinkPHP的学习,连接 *** 作数据库是最关键的,这里就讲一下ThinkPHP如何连接MySQL数据库
方法/步骤
配置PHP5支持MySQL
打开PHP配置文件“F:\PHP\php5328Win32\phpini”,查找“extension=php_mysqldll”,
把前面的分号去掉,保存文件,启动服务;
却提示“PHP startup: Unable to load dynamic library :F:\PHP\php_mysqldll”错误,
解决办法,打开PHP配置文件“F:\PHP\php5328Win32\phpini”,查找“extension_dir = "ext"”,
把前面的分号去掉,保存文件,启动服务,问题解决;
准备测试数据
配置数据库连接信息
打开配置文件“F:\PHP\Application\Common\Conf\configphp”,文件内容如下:
添加一个 *** 作数据的方法
打开上一篇新建的控制器文件“F:\PHP\Application\Index\Controller\IndexControllerclassphp”,添加一个函数,代码如下:测试一下吧
如果PHP5配置不正确,可能出现以下错误信息:
ThinkPHP中如何连接数据库 *** 作数据库之前,我们要建立一个Model。在说Model和Action之前,先交代一下Model和Action的保存位置。Model保存在 程序目录中lib/Model文件夹中,Action保存在程序目录中lib/Action文件夹中。ThinkPHP系统默认的Model规则是这样子 的:Model文件文明名类似“Model类名+Modelclassphp,并且Model默认的 *** 作数据库表名字为我们在configphp中 定义的DB_PREFIX+Model类名,Model类名和文件名需要大写”在Model文件中,定义一个类,扩展Model类,一般写法如下class 类名Model extends Model{}那么,现在我们来定义一个Model吧。由于我们数据库表名称为cms_article,class ArticleModel extends Model{}文件保存为ArticleModelclassphp。什么都不用写,一个Model已经定义完成了。那么现在,我们继续我们的Action知识吧。Action和Model很多的规则很接近,不同的是Action不直接 *** 作数据库,而是需要通过Model对数据库进行 *** 作。现在我们来定义一个Action来完成 *** 作。class IndexAction extends Action{function index(){$Article = D(”Article”);}}将文件保存为IndexActionclassphp。OK,现在我们刷新一下首页,如果没有任何的提示,那么恭喜你,数据库连接Model、 Action定义都是正常的。Action中D方法就是调用Model,Article就是我们刚刚定义的那个 ArticleModelclassphp中的Model类~也就是说在定义Model的同时,我们已经完成了对数据库的连接和对数据库表 *** 作的准 备~
以上就是关于如何在thinkphp中直接 *** 作数据库中的视图全部的内容,包括:如何在thinkphp中直接 *** 作数据库中的视图、通过ThinkPHP文件建立数据库数据表、thinkphp数据库配置信息加密怎么处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)