Ok. Da es sich aber um meine Gallery handelt brauch ich das hier nicht zu berücksichtigen:
Code: Alles auswählen
$this->db->sql_transaction('begin');
// Dein Code
$this->db->sql_transaction('commit');
weil man mus dafür ja eh die erweiterung deaktivieren und da dies nichst mit z.B. BEiträgen oder so zu tun hat besteht da eigentlich keine gefahr das da was dazwischen funkt.
@edit
habs jetzt angepasst auch das sql_tranaction hab ich am anfang und am ende eingefügt.
Hab dann drei dateien erstellt.
In der Ersten datei lege ich eine Temporäre tabelle an mit den selben spalten namen wie die info tabelle. Anschliessend lese ich die info tabell mit foreach aus und schreinbe zeile rein und lösche die geschriebene zeile und das solange bis alle in der info tabelle rübergeschoben sind.
Code: Alles auswählen
public function rename_step_2()
{
$this->db->sql_transaction('begin');
$sql = 'SELECT *
FROM ' . $this->table_prefix . 'chris1278_sg_Info
WHERE 1';
$result = $this->db->sql_query($sql);
$info_row = $this->db->sql_fetchrowset($result);
$this->db->sql_freeresult($result);
foreach ($info_row as $row)
{
$sql_insert = [
'sg_info_id' => $row['sg_info_id'],
'sg_info_old_user_id' => $row['sg_info_old_user_id'],
'sg_info_username' => $row['sg_info_username'],
'sg_info_username_clean' => $row['sg_info_username_clean'],
'sg_info_perm_dir_user_hash' => $row['sg_info_perm_dir_user_hash'],
];
$this->db->sql_query('INSERT INTO ' . $this->table_prefix . 'chris1278_temp ' . $this->db->sql_build_array('INSERT', $sql_insert));
$sql = 'DELETE FROM ' . $this->table_prefix . 'chris1278_sg_Info
WHERE sg_info_id = "' . (int) $row['sg_info_id'] . '"';
$sql = $this->db->sql_query($sql);
}
}
}
Im zweiten schritt also in der zweiten datei lösche ich dann die leere tabelle und erstelle mit korrektem namen neu und dann führe ich das skript oben wieder aus nur andersrum.
in der Dritten datei lösche ich die temporäre tabelle und fertig.