public function mswGetTableData($table, $hexValue = true) { if (!dbBackup::setDatabase($this->database)) { return false; } $data = '--' . mswDefineNewline(); $data .= '-- Dumping data for table `' . $table . '`' . mswDefineNewline(); $data .= '--' . mswDefineNewline() . mswDefineNewline(); $records = mysql_query('SHOW FIELDS FROM `' . $table . '`'); $num_fields = mysql_num_rows($records); if ($num_fields == 0) { return false; } $selectStatement = "SELECT "; $insertStatement = "INSERT INTO `{$table}` ("; $hexField = array(); for ($x = 0; $x < $num_fields; $x++) { $record = mysql_fetch_assoc($records); if ($hexValue && dbBackup::isTextValue($record['Type'])) { $selectStatement .= 'HEX(`' . $record['Field'] . '`)'; $hexField[$x] = true; } else { $selectStatement .= '`' . $record['Field'] . '`'; $insertStatement .= '`' . $record['Field'] . '`'; $insertStatement .= ", "; $selectStatement .= ", "; } } $insertStatement = substr($insertStatement, 0, -2) . ') VALUES'; $selectStatement = substr($selectStatement, 0, -2) . ' FROM `' . $table . '`'; $records = mysql_query($selectStatement); $num_rows = mysql_num_rows($records); $num_fields = mysql_num_fields($records); if ($num_rows > 0) { $data .= $insertStatement; for ($i = 0; $i < $num_rows; $i++) { $record = mysql_fetch_assoc($records); $data .= ' ('; for ($j = 0; $j < $num_fields; $j++) { $field_name = mysql_field_name($records, $j); if (isset($hexField[$j]) && $hexField[$j] && strlen($record[$field_name]) > 0) { $data .= "0x" . $record[$field_name]; } else { $data .= "'" . str_replace('\\"', '"', mysql_real_escape_string($record[$field_name])) . "'"; } $data .= ','; } $data = substr($data, 0, -1) . ")"; $data .= $i < $num_rows - 1 ? ',' : ';'; $data .= mswDefineNewline(); if (strlen($data) > 1048576) { dbBackup::saveToFile($this->file, $data); $data = ''; } } $data .= mswDefineNewline() . "-- --------------------------------------------------------" . mswDefineNewline() . mswDefineNewline(); dbBackup::saveToFile($this->file, $data); } }