<? /* * This file may contain 2 functions, a db_update_$ver_pre() and a * db_update_$ver_post(). _pre() is called before the SQL patch is * applied, and as expected, _post() is called after. * * These functions are called from the main db_update.php file, and included * once, so any global variables declared in here WILL REMAIN across both * calls. meaning you can pull some stuff out of the database in _pre(), and * then the patch will be applied, and they it can be inserted back into the * database in _post(). * Also note that MULTIPLE php scripts could be included if the db update is * large, so global variable names probably shouldn't conflict... put the version * number in them */ $update_62_committee = array(); function db_update_62_pre() { global $update_62_committee; $q = $pdo->prepare('SELECT * FROM committees_members'); $q->execute(); while ($r = $q->fetch(PDO::FETCH_ASSOC)) { $update_62_committee[] = $r; } } function db_update_62_post() { global $update_62_committee; global $config; foreach ($update_62_committee as $c) { list($fn, $ln) = split(' ', $c['name'], 2); $username = $c['email']; if ($config['committee_password_expiry_days'] > 0) { $passwordexpiry = "DATE_ADD(CURDATE(), INTERVAL {$config['committee_password_expiry_days']} DAY)"; } else { $passwordexpiry = 'NULL'; } $deleted = ($c['deleted'] == 'Y') ? 'yes' : 'no'; $q = "INSERT INTO users (`types`,`firstname`,`lastname`,`username`,`password`,`passwordexpiry`, `email`,`phonehome`,`phonework`,`phonecell`,`fax`,`organization`, `created`,`deleted`) VALUES ('committee',?,?,?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), ?)"; $stmt = $pdo->prepare($q); $stmt->execute([$fn,$ln,$username,$c['password'],$passwordexpiry,$c['email'],$c['phonehome'],$c['phonework'],$c['phonecell'],$c['fax'],$c['organization'],$deleted]); echo "$q\n"; $id = $pdo->lastInsertId(); $access_admin = ($c['access_admin'] == 'Y') ? 'yes' : 'no'; $access_config = ($c['access_config'] == 'Y') ? 'yes' : 'no'; $access_super = ($c['access_super'] == 'Y') ? 'yes' : 'no'; $displayemail = ($c['displayemail'] == 'Y') ? 'yes' : 'no'; $q = "INSERT INTO users_committee(`users_id`,`emailprivate`, `ord`,`displayemail`,`access_admin`,`access_config`, `access_super`) VALUES ( ?,?, ?, ?, ?, ?, ?)"; $stmt = $pdo->prepare($q); $stmt->execute([$id,$c['emailprivate'],$c['ord'],$displayemail,$access_admin,$access_config,$access_super]); echo "$q\n"; show_pdo_errors_if_any($pdo); /* Update committee links */ $q = "UPDATE committees_link SET users_id=? WHERE committees_members_id=?"; $stmt = $pdo->prepare($q); $stmt->execute([$id,$c['id']]); echo "$q\n"; } } ?>