YII连接数据库总是错误,请问谁有办法

YII连接数据库总是错误,请问谁有办法,第1张

1、最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限。 要解决这个问题,在管理器中调整数据库文件的属性,让匿名用户有正确的权限。当使用ACCESS数据库时,不仅要给文件写的权限,还要给该目录写 的权限,因为Jet需要在该目录建立一个.ldb文件。

2、第二个原因是数据库没有使用正确的模式打开。应该使用下面的方法打开。 SQL = "UPDATE Products Set UnitPrice = 2" Set Conn = Server.CreateObject( "ADODB.Connection ") Conn.Mode = 3 '3 = adModeReadWrite Conn.Open "myDSN " Conn.Execute(SQL) Conn.Close 注意默认的Mode是设置0(adModeUnknown),它是允许更新的。

3、还有可能是在ODBC管理器中将该DSN的只读选项选中。

4、你是在同时更新两个表中的字段,也会出现这个错误信息,解决办法是分开来更新这两个表中各自字段。

5、当你使用了一个从低版本中(如ACCESS2.0,ACCESS7.0)载入到高版本(ACCESS 2000)中的查询时,在执行这个查询是会出现该错误。

1.网站中商品一多,肯定需要一键导入功能,有现在成的第三方插件类PHPExcel,可以直接百度搜索进行下载。

2.里面所用到的文件夹主要是Classes这个文件夹。

3.把Classes文件夹改名为PHPExcel,复制整个文件夹到yii项目中的protected/extensions。

4.在定义的方法中需要用到PHPExcel的地方加上这两句代码

/*静用Yii自身的自动加载方法,使PHPExcel自带的autoload生效*/        Yii::$enableIncludePath=false

     /*引入PHPExcel.php文件*/        Yii::import('application.extensions.PHPExcel.PHPExcel', 1)  

5.最后附上代码,此代码主要针对低版本的excel起效,对excel2007无效,不过大致步骤相同。

前台显示代码

<html><head><meta http-equiv="Content-Type" content="text/htmlcharset=utf-8"></head><body><form action="./index.php?r=houtai/functions/daoru" method="POST" enctype="multipart/form-data">    <input type="file" name="filename" />    <input type="submit" name="submit" value="sub" /></form></body></html>

控制器代码

/*     * Excel一键导入功能     */

function actionDaoru(){                    /*是否表单提交*/            if(isset($_POST['submit'])){            /*上传excel文件是否成功*/          

$this->upload_file('filename')                        /*文件路径及名称*/            $file=Yii::app()->BasePath."/modules/houtai/data/excels/".$_FILES['filename']['name']            $this->excelToArray($file)                                }                        $this->renderPartial('Daoru')    }

/*     * 表数据转化为数组 excel 低版本excel,不包括excel2007     */  

function ExcelToArray($file){            /*静用Yii自身的自动加载方法,使PHPExcel自带的autoload生效*/  

Yii::$enableIncludePath=false                /*引入PHPExcel.php文件*/        Yii::import('application.extensions.PHPExcel.PHPExcel', 1)                            //echo $file                /*创建对象,针对Excel2003*/        $objReader=PHPExcel_IOFactory::createReader('Excel5')            /*此属性不明,貌似设置为flase也可以*/      

$objReader->setReadDataOnly(true)            /*加载对象路径*/        $objPHPExcel=$objReader->load($file)            /*获取工作表*/        $objWorksheet=$objPHPExcel->getActiveSheet()    //获得当前活动的工作表,即打开默认显示的那张表        //

$objWorksheet=$objPHPExcel->getSheet(0)    //也可以这样获取,读取第一个表,参数0            /*得到总行数*/      

$highestRow=$objWorksheet->getHighestRow()            /*得到总列数*/        $highestColumn=$objWorksheet->getHighestColumn()        $highestColumnIndex=PHPExcel_Cell::columnIndexFromString($highestColumn)            /*取单元数据进数组*/      

$excelData=array()      

for($row=2$row<=$highestRow++$row){            for($col=0$col<=$highestColumnIndex++$col){              

$excelData[$row][]=$objWorksheet->getCellByColumnAndRow($col,$row)->getValue()            }        }                  

print_r($excelData)        exit    }

最后显示的页面是这样子的,导入的excel表中的数据以数组形式显示。

Yii 有自己的保存方法的,AR方式中有个save方法,就能保存的

$customer = Customer::find()

    ->where(['id' => 1])

    ->one()

$customer->name = 'baidu'

$customer->save()


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6657643.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-26
下一篇2023-03-26

发表评论

登录后才能评论

评论列表(0条)

    保存