Update Transactions and fix errors

Reduce quoting level, and fix errors introduced by prior commits
This commit is contained in:
steve-lad 2021-02-08 17:41:19 +01:00 committed by Diederik de Groot
parent 7f047f7c10
commit 3fbccb982f
No known key found for this signature in database
GPG key ID: AFA728250A1BECD6
2 changed files with 36 additions and 31 deletions

View file

@ -1165,7 +1165,7 @@ dbug('getting Phone Grid');
$save_settings = array(); $save_settings = array();
$save_codec = array(); $save_codec = array();
$name_dev = ''; $name_dev = '';
$db_field = $this->dbinterface->HWextension_db_SccpTableData("get_colums_sccpdevice"); $db_field = $this->dbinterface->HWextension_db_SccpTableData("get_columns_sccpdevice");
$hw_id = (empty($get_settings['sccp_deviceid'])) ? 'new' : $get_settings['sccp_deviceid']; $hw_id = (empty($get_settings['sccp_deviceid'])) ? 'new' : $get_settings['sccp_deviceid'];
$hw_type = (empty($get_settings['sccp_device_typeid'])) ? 'sccpdevice' : $get_settings['sccp_device_typeid']; $hw_type = (empty($get_settings['sccp_device_typeid'])) ? 'sccpdevice' : $get_settings['sccp_device_typeid'];
$update_hw = ($hw_id == 'new') ? 'update' : 'clear'; $update_hw = ($hw_id == 'new') ? 'update' : 'clear';
@ -1407,7 +1407,7 @@ dbug('getting Phone Grid');
); );
*/ */
$name_dev = ''; $name_dev = '';
$db_field = $this->dbinterface->HWextension_db_SccpTableData("get_colums_sccpuser"); $db_field = $this->dbinterface->HWextension_db_SccpTableData("get_columns_sccpuser");
// $hw_id = (empty($get_settings['sccp_deviceid'])) ? 'new' : $get_settings['sccp_deviceid']; // $hw_id = (empty($get_settings['sccp_deviceid'])) ? 'new' : $get_settings['sccp_deviceid'];
// $update_hw = ($hw_id == 'new') ? 'update' : 'clear'; // $update_hw = ($hw_id == 'new') ? 'update' : 'clear';
$hw_prefix = 'SEP'; $hw_prefix = 'SEP';

View file

@ -113,19 +113,19 @@ class dbinterface
case 'HWextension': case 'HWextension':
$raw_settings = $this->getDb_model_info($get = "extension", $format_list = "model"); $raw_settings = $this->getDb_model_info($get = "extension", $format_list = "model");
break; break;
case 'get_colums_sccpdevice': case 'get_columns_sccpdevice':
$sql = "DESCRIBE sccpdevice"; $sql = 'DESCRIBE sccpdevice';
$stmt = $db->prepare($sql); $stmt = $db->prepare($sql);
break; break;
case 'get_colums_sccpuser': case 'get_columns_sccpuser':
$sql = "DESCRIBE sccpuser"; $sql = 'DESCRIBE sccpuser';
$stmts = $db->prepare($sql); $stmts = $db->prepare($sql);
break; break;
case 'get_sccpdevice_byid': case 'get_sccpdevice_byid':
$sql = 'SELECT t1.*, types.dns, types.buttons, types.loadimage, types.nametemplate as nametemplate, ' $sql = 'SELECT t1.*, types.dns, types.buttons, types.loadimage, types.nametemplate as nametemplate,
. 'addon.buttons as addon_buttons FROM sccpdevice AS t1 ' addon.buttons as addon_buttons FROM sccpdevice AS t1
. 'LEFT JOIN sccpdevmodel as types ON t1.type=types.model ' LEFT JOIN sccpdevmodel as types ON t1.type=types.model
. 'LEFT JOIN sccpdevmodel as addon ON t1.addon=addon.model WHERE name="' . $data['id'] . ''; LEFT JOIN sccpdevmodel as addon ON t1.addon=addon.model WHERE name =\'' . $data['id'] . '\'';
$stmt = $db->prepare($sql); $stmt = $db->prepare($sql);
break; break;
case 'get_sccpuser': case 'get_sccpuser':
@ -246,6 +246,13 @@ class dbinterface
function write($table_name = "", $save_value = array(), $mode = 'update', $key_fld = "", $hwid = "") function write($table_name = "", $save_value = array(), $mode = 'update', $key_fld = "", $hwid = "")
{ {
//dbug('entering write for table', $table_name);
if ($table_name === 'sccpdevmodel'){
dbug('entering write with save_value', $save_value);
dbug('entering write with mode', $mode);
dbug('entering write with key_fld', $key_fld);
dbug('entering write with hwid', $hwid);
}
// mode clear - Empty table before update // mode clear - Empty table before update
// mode update - update / replace record // mode update - update / replace record
global $db; global $db;
@ -271,25 +278,22 @@ class dbinterface
if ($mode == 'clear') { if ($mode == 'clear') {
// $sql = 'truncate `sccpsettings`'; // $sql = 'truncate `sccpsettings`';
$db->prepare('TRUNCATE sccpsettings')->execute(); $db->prepare('TRUNCATE sccpsettings')->execute();
$stmt = $db->prepare('INSERT INTO sccpsettings (`keyword`, `data`, `seq`, `type`) VALUES (?,?,?,?)'); $stmt = $db->prepare('INSERT INTO sccpsettings (keyword, data, seq, type) VALUES (?,?,?,?)');
$result = $db->executeMultiple($stmt, $save_value); $result = $db->executeMultiple($stmt, $save_value);
} else { } else {
if (!empty($delete_value)) { if (!empty($delete_value)) {
$stmt = $db->prepare('DELETE FROM sccpsettings WHERE `keyword`=?'); $stmt = $db->prepare('DELETE FROM sccpsettings WHERE keyword = ?');
$result = $db->executeMultiple($stmt, $delete_value); $result = $db->executeMultiple($stmt, $delete_value);
} }
if (!empty($save_value)) { if (!empty($save_value)) {
$stmt = $db->prepare('REPLACE INTO sccpsettings (`keyword`, `data`, `seq`, `type`) VALUES (?,?,?,?)'); $stmt = $db->prepare('REPLACE INTO sccpsettings (keyword, data, seq, type) VALUES (?,?,?,?)');
$result = $db->executeMultiple($stmt, $save_value); $result = $db->executeMultiple($stmt, $save_value);
} }
} }
break; break;
case 'sccpdevmodel': case 'sccpdevmodel': // Fall through to next intentionally
break; case 'sccpdevice': // Fall through to next intentionally
case 'sccpdevice':
break;
case 'sccpuser': case 'sccpuser':
$sql_db = $table_name;
$sql_key = ""; $sql_key = "";
$sql_var = ""; $sql_var = "";
foreach ($save_value as $key_v => $data) { foreach ($save_value as $key_v => $data) {
@ -297,23 +301,24 @@ class dbinterface
$sql_var .= ', '; $sql_var .= ', ';
} }
if ($data === $this->val_null) { if ($data === $this->val_null) {
$sql_var .= '`' . $key_v . '`=NULL'; $sql_var .= $key_v . '= NULL';
} else { } else {
$sql_var .= '`' . $key_v . '`="' . $data . '"'; $sql_var .= $key_v . ' = \'' . $data . '\'';
} }
if ($key_fld == $key_v) { if ($key_fld == $key_v) {
$sql_key = '`' . $key_v . '`="' . $data . '"'; $sql_key = $key_v . ' = \'' . $data . '\'';
} }
} }
if (!empty($sql_var)) { if (!empty($sql_var)) {
if ($mode == 'delete') { switch ($mode) {
$req = 'DELETE FROM sccpuser WHERE ' . $sql_key . ''; case 'delete':
} else { $req = 'DELETE FROM '. $table_name . ' WHERE ' . $sql_key;
if ($mode == 'update') { break;
$req = 'UPDATE sccpuser SET ' . $sql_var . 'WHERE ' . $sql_key . ''; case 'update':
} else { $req = 'UPDATE ' . $table_name . ' SET ' . $sql_var . ' WHERE ' . $sql_key;
$req = 'REPLACE INTO sccpuser SET ' . $sql_var . ''; break;
} default:
$req = 'REPLACE INTO ' . $table_name . ' SET ' . $sql_var;
} }
} }
$result = $db->prepare($req)->execute(); $result = $db->prepare($req)->execute();
@ -327,14 +332,14 @@ class dbinterface
break; break;
case 'replace': case 'replace':
if (!empty($save_value)) { if (!empty($save_value)) {
$sql = 'UPDATE sccpbuttonconfig SET `name`=? WHERE `ref`= ? AND `reftype`=? AND `instance`=? AND `buttontype`=?'; $sql = 'UPDATE sccpbuttonconfig SET name =? WHERE ref = ? AND reftype =? AND instance =? AND buttontype =?';
$stmt = $db->prepare($sql); $stmt = $db->prepare($sql);
$result= $db->executeMultiple($stmt, $save_value); $result= $db->executeMultiple($stmt, $save_value);
} }
break; break;
default: default:
if (!empty($save_value)) { if (!empty($save_value)) {
$sql = 'INSERT INTO sccpbuttonconfig (`ref`, `reftype`,`instance`, `buttontype`, `name`, `options`) VALUES (?,?,?,?,?,?)'; $sql = 'INSERT INTO sccpbuttonconfig (ref, reftype, instance, buttontype, name, options) VALUES (?,?,?,?,?,?)';
$stmt = $db->prepare($sql); $stmt = $db->prepare($sql);
$result = $db->executeMultiple($stmt, $save_value); $result = $db->executeMultiple($stmt, $save_value);
} }