View Issue Details

This bug affects 1 person(s).
 2
IDProjectCategoryView StatusLast Update
09262Bug reportsOtherpublic2014-10-14 00:36
Reportermfaber Assigned Toc_schmitz  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version2.06+ 
Fixed in Version2.06+ 
Summary09262: PHP warning on DB upgrade: reset() expects parameter 1 to be array, string given
Description

Upgraded to the latest 2.06 git version.
After clicking on yes for the db upgrade, there's a PHP warning (see additional info).

Additional Information

LimeSurvey@GIT
The LimeSurvey database is being upgraded (2014-09-27 14:46:29) .

Please be patient...

PHP warning

reset() expects parameter 1 to be array, string given

E:\survey\htdocs\github\LimeSurvey\application\helpers\update\updatedb_helper.php(1302)

1290 function upgradeTokenTables178()
1291 {
1292 $sVarchar = Yii::app()->getConfig('varchar');
1293 $oSchema=Yii::app()->db->schema;
1294 $sDBDriverName=setsDBDriverName();
1295 if($sDBDriverName=='mssql') $sSubstringCommand='substring'; else $sSubstringCommand='substr';
1296
1297 $surveyidresult = dbGetTablesLike("tokens%");
1298 if ($surveyidresult)
1299 {
1300 foreach ( $surveyidresult as $sv )
1301 {
1302 $sTableName=reset($sv);
1303 $oSchema=$oSchema->getTable($sTableName);
1304 foreach ($oSchema->columnNames as $sColumnName)
1305 {
1306 if (strpos($sColumnName,'attribute_')===0)
1307 {
1308 alterColumn($sTableName, $sColumnName, "text");
1309 }
1310 }
1311 Yii::app()->db->createCommand("UPDATE {$sTableName} set email={$sSubstringCommand}(email,0,254)")->execute();
1312 alterColumn($sTableName, 'email', "{$sVarchar}(254)");
1313 alterColumn($sTableName, 'firstname', "{$sVarchar}(150)");
1314 alterColumn($sTableName, 'lastname', "{$sVarchar}(150)");
Stack Trace
#0
– E:\survey\htdocs\github\LimeSurvey\application\helpers\update\updatedb_helper.php(1302): reset("lime_tokens593622")
1297 $surveyidresult = dbGetTablesLike("tokens%");
1298 if ($surveyidresult)
1299 {
1300 foreach ( $surveyidresult as $sv )
1301 {
1302 $sTableName=reset($sv);
1303 $oSchema=$oSchema->getTable($sTableName);
1304 foreach ($oSchema->columnNames as $sColumnName)
1305 {
1306 if (strpos($sColumnName,'attribute
')===0)
1307 {
#1
– E:\survey\htdocs\github\LimeSurvey\application\helpers\update\updatedb_helper.php(1257): upgradeTokenTables178()
1252 $oDB->createCommand()->update('{{settings_global}}',array('stg_value'=>177),"stg_name='DBVersion'");
1253 }
1254
1255 if ($iOldDBVersion < 178)
1256 {
1257 upgradeTokenTables178();
1258 alterColumn('{{participants}}', 'email', "{$sVarchar}(254)", false);
1259 alterColumn('{{participants}}', 'firstname', "{$sVarchar}(150)", false);
1260 alterColumn('{{participants}}', 'lastname', "{$sVarchar}(150)", false);
1261 $oDB->createCommand()->update('{{settings_global}}',array('stg_value'=>178),"stg_name='DBVersion'");
1262 }
#2
– E:\survey\htdocs\github\LimeSurvey\application\helpers\update\update_helper.php(33): db_upgrade_all(177)
28 if(isset($subaction) && $subaction=="yes")
29 {
30 echo Yii::app()->getController()->_getAdminHeader();
31 echo "<div style='width:90%; padding:1% 5%;background-color:#eee;'>";
32 Yii::app()->loadHelper('update/updatedb');
33 $result=db_upgrade_all(intval($currentDBVersion));
34 if ($result)
35 {
36 $data = "<br />".sprintf($clang->gT("Database has been successfully upgraded to version %s"),$dbversionnumber);
37 $data .= "<br /><a href='".Yii::app()->getController()->createUrl("/admin")."'>".$clang->gT("Back to main menu")."</a></div>";
38 }
#3

  • E:\survey\htdocs\github\LimeSurvey\application\controllers\admin\update.php(606): CheckForDBUpgrades("yes")
    #4
    unknown(0): update->db("yes")
    #5
  • E:\survey\htdocs\github\LimeSurvey\framework\web\actions\CAction.php(108): ReflectionMethod->invokeArgs(update, array("yes"))
    #6
  • E:\survey\htdocs\github\LimeSurvey\application\core\Survey_Common_Action.php(99): CAction->runWithParamsInternal(update, ReflectionMethod, array("continue" => "yes", "sa" => "db"))
    #7
  • E:\survey\htdocs\github\LimeSurvey\framework\web\CController.php(308): Survey_Common_Action->runWithParams(array("continue" => "yes", "sa" => "db"))
    #8
  • E:\survey\htdocs\github\LimeSurvey\framework\web\CController.php(286): CController->runAction(update)
    #9
  • E:\survey\htdocs\github\LimeSurvey\framework\web\CController.php(265): CController->runActionWithFilters(update, array())
    #10
  • E:\survey\htdocs\github\LimeSurvey\application\controllers\AdminController.php(169): CController->run("update")
    #11
  • E:\survey\htdocs\github\LimeSurvey\framework\web\CWebApplication.php(282): AdminController->run("update")
    #12
  • E:\survey\htdocs\github\LimeSurvey\framework\web\CWebApplication.php(141): CWebApplication->runController("admin/update/sa/db")
    #13
  • E:\survey\htdocs\github\LimeSurvey\framework\base\CApplication.php(180): CWebApplication->processRequest()
    #14
  • E:\survey\htdocs\github\LimeSurvey\index.php(200): CApplication->run()
    2014-09-27 14:46:29 Apache/2.4.4 (Win32) OpenSSL/0.9.8y PHP/5.4.19 Yii Framework/1.1.14
    Application Log
    Timestamp Level Category Message
    14:46:28.106101 trace system.CModule
    Loading "log" application component
    14:46:28.110100 trace system.CModule
    Loading "request" application component
    14:46:28.120101 trace system.CModule
    Loading "assetManager" application component
    14:46:28.131102 trace system.db.ar.CActiveRecord
    Plugin.findAllByAttributes()
    14:46:28.131102 trace system.CModule
    Loading "db" application component
    14:46:28.132102 trace system.db.CDbConnection
    Opening DB connection
    14:46:29.163161 trace system.CModule
    Loading "cache" application component
    14:46:29.170161 trace system.db.CDbCommand
    Querying SQL: SHOW FULL COLUMNS FROM lime_plugins
    14:46:29.178162 trace system.db.CDbCommand
    Querying SQL: SHOW CREATE TABLE lime_plugins
    14:46:29.181162 trace system.db.CDbCommand
    Querying SQL: SELECT FROM lime_plugins t WHERE t.active=:yp0
    14:46:29.192162 trace system.CModule
    Loading "urlManager" application component
    14:46:29.206163 trace system.CModule
    Loading "session" application component
    14:46:29.215163 trace system.db.CDbCommand
    Querying SQL: SHOW FULL COLUMNS FROM lime_settings_global
    14:46:29.220165 trace system.db.CDbCommand
    Querying SQL: SHOW CREATE TABLE lime_settings_global
    14:46:29.226165 trace system.db.ar.CActiveRecord
    SettingGlobal.findAll()
    14:46:29.226165 trace system.db.CDbCommand
    Querying SQL: SELECT
    FROM lime_settings_global t
    14:46:29.297168 trace system.CModule
    Loading "bootstrap" application component
    14:46:29.299169 trace system.CModule
    Loading "clientScript" application component
    14:46:29.302169 trace system.CModule
    Loading "user" application component
    14:46:29.306169 trace system.db.CDbCommand
    Querying SQL: SHOW FULL COLUMNS FROM lime_surveys
    14:46:29.311170 trace system.db.CDbCommand
    Querying SQL: SHOW CREATE TABLE lime_surveys
    14:46:29.319169 trace system.CModule
    Loading "widgetFactory" application component
    14:46:29.328171 trace system.db.CDbConnection
    Starting transaction
    14:46:29.332170 trace system.db.CDbCommand
    Querying SQL: SHOW TABLES LIKE 'lime_tokens%'
    14:46:29.333170 error php
    reset() expects parameter 1 to be array, string given
    (E:\survey\htdocs\github\LimeSurvey\application\helpers\update\updatedb_helper.php:1302)
    Stack trace:
    #0
    E:\survey\htdocs\github\LimeSurvey\application\helpers\update\update_helper.php(33):
    db_upgrade_all()
    #1
    E:\survey\htdocs\github\LimeSurvey\application\controllers\admin\update.php(606):
    CheckForDBUpgrades()
    #2 unknown(0): update->db()
    #3
    E:\survey\htdocs\github\LimeSurvey\framework\web\actions\CAction.php(108):
    ReflectionMethod->invokeArgs()
    #4
    E:\survey\htdocs\github\LimeSurvey\application\core\Survey_Common_Action.php(99):
    update->runWithParamsInternal()
    #5 E:\survey\htdocs\github\LimeSurvey\framework\web\CController.php(308):
    update->runWithParams()
    #6 E:\survey\htdocs\github\LimeSurvey\framework\web\CController.php(286):
    AdminController->runAction()
    #7 E:\survey\htdocs\github\LimeSurvey\framework\web\CController.php(265):
    AdminController->runActionWithFilters()
    #8
    E:\survey\htdocs\github\LimeSurvey\application\controllers\AdminController.php(169):
    AdminController->run()
    #9
    E:\survey\htdocs\github\LimeSurvey\framework\web\CWebApplication.php(282):
    AdminController->run()
    #10
    E:\survey\htdocs\github\LimeSurvey\framework\web\CWebApplication.php(141):
    LSYii_Application->runController()
    #11
    E:\survey\htdocs\github\LimeSurvey\framework\base\CApplication.php(180):
    LSYii_Application->processRequest()
    #12 E:\survey\htdocs\github\LimeSurvey\index.php(200):
    LSYii_Application->run()
    REQUEST_URI=/github/limesurvey/index.php/admin/update/sa/db/continue/yes
    14:46:29.335170 trace system.CModule
    Loading "errorHandler" application component
TagsNo tags attached.
Bug heat2
Complete LimeSurvey version number (& build)140927
I will donate to the project if issue is resolvedNo
BrowserFF
Database type & versionMySQL 5.0.10
Server OS (if known)Win7
Webserver software & version (if known)Apache 2.4.7
PHP VersionPhP 5.4.19

Users monitoring this issue

There are no users monitoring this issue.

Activities

c_schmitz

c_schmitz

2014-10-14 00:36

administrator   ~30794

Fix committed to 2.06 branch: http://bugs.limesurvey.org/plugin.php?page=Source/view&amp;id=14562

Related Changesets

LimeSurvey: 2.06 bdaebbe5

2014-10-13 22:35:59

c_schmitz

Details Diff
Fixed issue 09262: PHP warning on DB upgrade: reset() expects parameter 1 to be array, string given Affected Issues
09262
mod - application/helpers/update/updatedb_helper.php Diff File

Issue History

Date Modified Username Field Change
2014-09-27 14:51 mfaber New Issue
2014-09-27 15:03 mfaber Database & DB-Version MySql 5.6.14 => MySQL 5.0.10
2014-09-27 15:14 mfaber Issue cloned: 09263
2014-10-14 00:35 c_schmitz Assigned To => c_schmitz
2014-10-14 00:35 c_schmitz Status new => assigned
2014-10-14 00:36 c_schmitz Changeset attached => LimeSurvey 2.06 bdaebbe5
2014-10-14 00:36 c_schmitz Note Added: 30794
2014-10-14 00:36 c_schmitz Resolution open => fixed
2014-10-14 00:36 c_schmitz Status assigned => closed
2014-10-14 00:36 c_schmitz Fixed in Version => 2.06+