use Friendica\Core\Logger;
use Friendica\Util\DateTimeFormat;
-require_once 'include/dba.php';
+require_once __DIR__ . '/../../include/dba.php';
/**
* @brief This class contain functions for the database management
*/
public static function convertToInnoDB()
{
- $r = q("SELECT `TABLE_NAME` FROM `information_schema`.`tables` WHERE `engine` = 'MyISAM' AND `table_schema` = '%s'",
- DBA::escape(DBA::databaseName()));
+ $tables = DBA::selectToArray(
+ ['information_schema' => 'tables'],
+ ['table_name'],
+ ['engine' => 'MyISAM', 'table_schema' => DBA::databaseName()]
+ );
- if (!DBA::isResult($r)) {
+ if (!DBA::isResult($tables)) {
echo L10n::t('There are no tables on MyISAM.') . "\n";
return;
}
- foreach ($r AS $table) {
- $sql = sprintf("ALTER TABLE `%s` engine=InnoDB;", DBA::escape($table['TABLE_NAME']));
+ foreach ($tables AS $table) {
+ $sql = "ALTER TABLE " . DBA::quoteIdentifier($table['table_name']) . " engine=InnoDB;";
echo $sql . "\n";
$result = DBA::e($sql);
}
if (isset($database[$name]["table_status"]["Comment"])) {
- $structurecomment = defaults($structure, "comment", "");
+ $structurecomment = $structure["comment"] ?? '';
if ($database[$name]["table_status"]["Comment"] != $structurecomment) {
$sql2 = "COMMENT = '" . DBA::escape($structurecomment) . "'";
// Compare the field structure field by field
foreach ($structure["fields"] AS $fieldname => $parameters) {
// Compare the field definition
- $field_definition = defaults($database[$name]["fields"], $fieldname, ['Collation' => '']);
+ $field_definition = ($database[$name]["fields"][$fieldname] ?? '') ?: ['Collation' => ''];
// Define the default collation if not given
if (!isset($parameters['Collation']) && !empty($field_definition['Collation'])) {
* @todo You cannot rename a primary key if "auto increment" is set
*
* @param string $table Table name
- * @param array $columns Columns Syntax for Rename: [ $old1 => [ $new1, $type1 ], $old2 => [ $new2, $type2 ], ... ] )
- * Syntax for Primary Key: [ $col1, $col2, ...] )
+ * @param array $columns Columns Syntax for Rename: [ $old1 => [ $new1, $type1 ], $old2 => [ $new2, $type2 ], ... ]
+ * Syntax for Primary Key: [ $col1, $col2, ...]
* @param int $type The type of renaming (Default is Column)
*
* @return boolean Was the renaming successful?
/**
* Check if a table exists
*
- * @param string $table Table name
+ * @param string|array $table Table name
*
* @return boolean Does the table exist?
* @throws Exception
return false;
}
- $table = DBA::escape($table);
-
- $sql = "SHOW TABLES LIKE '" . $table . "';";
-
- $stmt = DBA::p($sql);
-
- if (is_bool($stmt)) {
- $retval = $stmt;
+ if (is_array($table)) {
+ $condition = ['table_schema' => key($table), 'table_name' => current($table)];
} else {
- $retval = (DBA::numRows($stmt) > 0);
+ $condition = ['table_schema' => DBA::databaseName(), 'table_name' => $table];
}
- DBA::close($stmt);
+ $result = DBA::exists(['information_schema' => 'tables'], $condition);
- return $retval;
+ return $result;
}
/**