十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
建立数据库:
创新互联建站长期为数千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为鹤山企业提供专业的成都网站制作、成都网站设计,鹤山网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
步骤:核心-频道模式-内容模型管理,添加一个内容模块(手动添加你需要的数据字段)然后建立.demo.php文件(demo自己命名),写一个数据入库操作(如果你的网站要处理大数据量的访问的话,建议封装函数)。其中(数据主表:dede_archives
数据索引:dede_arctiny)和你添加的新表对应字段才能进行入库操作,但织梦的各个版本不同,字段也不同,需要楼主自己考虑,数据入库之后,就好办了。
添加
核心-网站栏目管理,添加你的需求栏目,这样就可以在织梦后台读取你的订单了。
如果想前台读取的话,我想这个就比较简单了,你自己可以解决的。
不懂的话,请再追问
mysql查询失败通常有以下几个可能:
sql语句存在语法错误
当前用户没有权限执行sql语句(如没有删除表的权限,却执行删除表的SQL语句)
解决方法:
改正所有的语法错误
为用户添加执行某类sql的权限
ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理。目前的数据库包括Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括对PDO的支持,如果应用需要使用数据库,必须配置数据库连接信息,数据库的配置文件有多种定义方式。
常用的配置方式是在项目配置文件中添加下面的参数:
?php
//项目配置文件
return array(
//数据库配置信息
'DB_TYPE' = 'mysql', // 数据库类型
'DB_HOST' = 'localhost', // 服务器地址
'DB_NAME' = 'thinkphp', // 数据库名
'DB_USER' = 'root', // 用户名
'DB_PWD' = '', // 密码
'DB_PORT' = 3306, // 端口
'DB_PREFIX' = 'think_', // 数据库表前缀
//其他项目配置参数
// ...
);
或者采用如下配置
'DB_DSN' = 'mysql://username:password@localhost:3306/DbName'
使用DB_DSN方式定义可以简化配置参数,DSN参数格式为:
数据库类型://用户名:密码@数据库地址:数据库端口/数据库名
如果两种配置参数同时存在的话,DB_DSN配置参数优先。
注意:如果要设置分布式数据库,暂时不支持DB_DSN方式配置。1
如果采用PDO驱动的话,则必须首先配置DB_TYPE 为pdo,然后还需要单独配置其他参数,例如:
//PDO连接方式
'DB_TYPE' = 'pdo', // 数据库类型
'DB_USER' = 'root', // 用户名
'DB_PWD' = '', // 密码
'DB_PREFIX' = 'think_', // 数据库表前缀
'DB_DSN' = 'mysql:host=localhost;dbname=thinkphp;charset=UTF-8'
注意:PDO方式的DB_DSN配置格式有所区别,根据不同的数据库类型设置有所不同。
配置文件定义的数据库连接信息一般是系统默认采用的,因为一般一个项目的数据库访问配置是相同的。该方法系统在连接数据库的时候会自动获取,无需手动连接。
可以对每个项目和不同的分组定义不同的数据库连接信息,如果开启了调试模式的话,还可以在不同的应用状态的配置文件里面定义独立的数据库配置信息。1
第二种 在模型类里面定义connection属性
如果在某个模型类里面定义了connection属性的话,则实例化该自定义模型的时候会采用定义的数据库连接信息,而不是配置文件中设置的默认连接信息,通常用于某些数据表位于当前数据库连接之外的其它数据库,例如:
//在模型里单独设置数据库连接信息
protected $connection = array(
'db_type' = 'mysql',
'db_user' = 'root',
'db_pwd' = '1234',
'db_host' = 'localhost',
'db_port' = '3306',
'db_name' = 'thinkphp'
);
也可以采用DSN方式定义,例如:
//或者使用DSN定义
protected $connection = 'mysql://root:1234@localhost:3306/thinkphp';
如果我们已经在配置文件中配置了额外的数据库连接信息,例如:
//数据库配置1
'DB_CONFIG1' = array(
'db_type' = 'mysql',
'db_user' = 'root',
'db_pwd' = '1234',
'db_host' = 'localhost',
'db_port' = '3306',
'db_name' = 'thinkphp'
),
//数据库配置2
'DB_CONFIG2' = 'mysql://root:1234@localhost:3306/thinkphp';
那么,我们可以把模型类的属性定义改为:
//调用配置文件中的数据库配置1
protected $connection = 'DB_CONFIG1';
//调用配置文件中的数据库配置2
protected $connection = 'DB_CONFIG2';
如果采用的是M方法实例化模型的话,也可以支持传入不同的数据库连接信息,例如:
$User = M('User','other_','mysql://root:1234@localhost/demo');
表示实例化User模型,连接的是demo数据库的other_user表,采用的连接信息是第三个参数配置的。如果我们在项目配置文件中已经配置了DB_CONFIG2的话,也可以采用:
$User = M('User','other_','DB_CONFIG2');
如果你的个别数据表没有定义任何前缀的话,可以在前缀参数中传入NULL,例如:
$User = M('User',Null,'DB_CONFIG2');
表示实例化User模型,连接的是demo数据库的user表。
需要注意的是,ThinkPHP的数据库连接的惰性的,所以并不是在实例化的时候就连接数据库,而是在有实际的数据操作的时候才会去连接数据库(额外的情况是,在系统第一次实例化模型的时候,会自动连接数据库获取相关模型类对应的数据表的字段信息)。
亲,你本身数据库中的表名叫 demo_user ,还是 demo_User ?
如果是demo_user, 换成 M('user'); 试试!~~
thinkphp3.2和phpexcel导入最基本用法
先整个最基础的代码,理解了这个,后面的就非常简单了
$file_name= './Upload/excel/123456.xls';
import("Org.Util.PHPExcel");
import("Org.Util.PHPExcel.IOFactory");
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader-load($file_name,$encode='utf-8');
$sheet = $objPHPExcel-getSheet(0);
$highestRow = $sheet-getHighestRow(); // 取得总行数
$highestColumn = $sheet-getHighestColumn(); // 取得总列数
$s = $objPHPExcel-getActiveSheet()-getCell("A2")-getValue();
表格内容:
再给大家整个一点难度的,先说下思路。
1.上传excel文件,得到它的地址
2.写个处理exl的function,即可
实例代码演示:
public function upload(){
$files = $_FILES['exl'];
// exl格式,否则重新上传
if($files['type'] !='application/vnd.ms-excel'){
$this-error('不是Excel文件,请重新上传');
}
// 上传
$upload = new \Think\Upload();// 实例化上传类
$upload-maxSize = 3145728 ;// 设置附件上传大小
$upload-exts = array('xls');// 设置附件上传类型
$upload-rootPath = './Upload/'; // 设置附件上传根目录
$upload-savePath = 'excel/'; // 设置附件上传(子)目录
//$upload-subName = array('date', 'Ym');
$upload-subName = '';
// 上传文件
$info = $upload-upload();
$file_name = $upload-rootPath.$info['exl']['savepath'].$info['exl']['savename'];
$exl = $this-import_exl($file_name);
// 去掉第exl表格中第一行
unset($exl[0]);
// 清理空数组
foreach($exl as $k=$v){
if(empty($v)){
unset($exl[$k]);
}
};
// 重新排序
sort($exl);
$count = count($exl);
// 检测表格导入成功后,是否有数据生成
if($count1){
$this-error('未检测到有效数据');
}
// 开始组合数据
foreach($exl as $k=$v){
$goods[$k]['goods_sn'] = $v;
// 查询数据库
$where['goods_sn'] = array('like','%'.$v.'%');
$res = M('goods')-where($where)-find();
$goods[$k]['goods_name'] = $res['goods_name'];
$goods[$k]['goods_thumb'] = $res['goods_thumb'];
if($res){
// 是否匹配成功
$goods[$k]['is_match'] = '1';
$f += 1;
}else{
// 匹配失败
$goods[$k]['is_match'] = '0';
$w += 1;
}
}
// 实例化数据
$this-assign('goods',$goods);
//print_r($f);
// 统计结果
$total['count'] = $count;
$total['success'] = $f;
$total['error'] = $w;
$this-assign('total',$total);
// 删除Excel文件
unlink($file_name);
$this-display('info');
}
/* 处理上传exl数据
* $file_name 文件路径
*/
public function import_exl($file_name){
//$file_name= './Upload/excel/123456.xls';
import("Org.Util.PHPExcel"); // 这里不能漏掉
import("Org.Util.PHPExcel.IOFactory");
$objReader = \PHPExcel_IOFactory::createReader('Excel5');
$objPHPExcel = $objReader-load($file_name,$encode='utf-8');
$sheet = $objPHPExcel-getSheet(0);
$highestRow = $sheet-getHighestRow(); // 取得总行数
$highestColumn = $sheet-getHighestColumn(); // 取得总列数
for($i=1;$i$highestRow+1;$i++){
$data[] = $objPHPExcel-getActiveSheet()-getCell('A'.$i)-getValue();
}
return $data;
}
有问题一定要及时弄清楚