|
From: <var...@us...> - 2021-07-29 16:44:31
|
Revision: 10395
http://sourceforge.net/p/phpwiki/code/10395
Author: vargenau
Date: 2021-07-29 16:44:29 +0000 (Thu, 29 Jul 2021)
Log Message:
-----------
lib/upgrade.php: remove code using mysql_list_fields, mysql_num_fields, mysql_field_name, mysql_field_flags, mysql_free_result
Modified Paths:
--------------
trunk/lib/upgrade.php
Modified: trunk/lib/upgrade.php
===================================================================
--- trunk/lib/upgrade.php 2021-07-29 15:46:37 UTC (rev 10394)
+++ trunk/lib/upgrade.php 2021-07-29 16:44:29 UTC (rev 10395)
@@ -515,103 +515,6 @@
}
}
- /* TODO:
- ALTER TABLE link ADD relation INT DEFAULT 0;
- CREATE INDEX linkrelation ON link (relation);
- */
-
- // 1.3.10 mysql requires page.id auto_increment
- // mysql, mysqli or mysqlt
- if ($this->phpwiki_version >= 1030.099 and substr($backend_type, 0, 5) == 'mysql'
- and DATABASE_TYPE != 'PDO'
- ) {
- echo _("Check for mysql page.id auto_increment flag"), " ... ";
- assert(!empty($page_tbl));
- $database = $this->dbi->_backend->database();
- // mysql_list_fields and mysql_num_fields removed in PHP 7
- $fields = mysql_list_fields($database, $page_tbl, $this->dbi->_backend->connection());
- $columns = mysql_num_fields($fields);
- for ($i = 0; $i < $columns; $i++) {
- if (mysql_field_name($fields, $i) == 'id') {
- $flags = mysql_field_flags($fields, $i);
- //DONE: something was wrong with ADODB here.
- if (!strstr(strtolower($flags), "auto_increment")) {
- echo "<b>", _("ADDING"), "</b>", " ... ";
- // MODIFY col_def valid since mysql 3.22.16,
- // older mysql's need CHANGE old_col col_def
- $this->dbi->genericSqlQuery("ALTER TABLE $page_tbl CHANGE id"
- . " id INT NOT NULL AUTO_INCREMENT");
- $fields = mysql_list_fields($database, $page_tbl);
- if (!strstr(strtolower(mysql_field_flags($fields, $i)), "auto_increment"))
- echo ' <span style="color: red; font-weight: bold;">' . _("FAILED") . "</span><br />\n";
- else
- echo _("OK"), "<br />\n";
- } else {
- echo _("OK"), "<br />\n";
- }
- break;
- }
- }
- mysql_free_result($fields);
- }
-
- // Check for mysql 4.1.x/5.0.0a binary search problem.
- // http://bugs.mysql.com/bug.php?id=4398
- // "select * from page where LOWER(pagename) like '%search%'" does not apply LOWER!
- // Confirmed for 4.1.0alpha,4.1.3-beta,5.0.0a; not yet tested for 4.1.2alpha,
- // On windows only, though utf8 would be useful elsewhere also.
- // Illegal mix of collations (latin1_bin,IMPLICIT) and
- // (utf8_general_ci, COERCIBLE) for operation '='])
- if (isWindows() and substr($backend_type, 0, 5) == 'mysql') {
- echo _("Check for mysql 4.1.x/5.0.0 binary search on Windows problem"), " ... ";
- $mysql_version = $this->dbi->_backend->_serverinfo['version'];
- if ($mysql_version < 401.0) {
- echo sprintf(_("version <em>%s</em>"), $mysql_version), " ",
- _("not affected"), "<br />\n";
- } elseif ($mysql_version >= 401.6) { // FIXME: since which version?
- $row = $this->dbi->_backend->getRow("SHOW CREATE TABLE $page_tbl");
- $result = join(" ", $row);
- if (strstr(strtolower($result), "character set")
- and strstr(strtolower($result), "collate")
- ) {
- echo _("OK"), "<br />\n";
- } else {
- $charset = 'UTF-8';
- $this->dbi->genericSqlQuery("ALTER TABLE $page_tbl CHANGE pagename "
- . "pagename VARCHAR(100) "
- . "CHARACTER SET '$charset' COLLATE '$charset" . "_bin' NOT NULL");
- echo sprintf(_("version <em>%s</em>"), $mysql_version),
- " <b>", _("FIXED"), "</b>",
- "<br />\n";
- }
- } elseif (DATABASE_TYPE != 'PDO') {
- // check if already fixed
- extract($this->dbi->_backend->_table_names);
- assert(!empty($page_tbl));
- $database = $this->dbi->_backend->database();
- // mysql_list_fields and mysql_num_fields removed in PHP 7
- $fields = mysql_list_fields($database, $page_tbl, $this->dbi->_backend->connection());
- $columns = mysql_num_fields($fields);
- for ($i = 0; $i < $columns; $i++) {
- if (mysql_field_name($fields, $i) == 'pagename') {
- $flags = mysql_field_flags($fields, $i);
- // I think it was fixed with 4.1.6, but I tested it only with 4.1.8
- if ($mysql_version > 401.0 and $mysql_version < 401.6) {
- // remove the binary flag
- if (strstr(strtolower($flags), "binary")) {
- // FIXME: on duplicate pagenames this will fail!
- $this->dbi->genericSqlQuery("ALTER TABLE $page_tbl CHANGE pagename"
- . " pagename VARCHAR(100) NOT NULL");
- echo sprintf(_("version <em>%s</em>"), $mysql_version),
- "<b>", _("FIXED"), "</b>"
- , "<br />\n";
- }
- }
- break;
- }
- }
- }
- }
if ($this->isSQL and ACCESS_LOG_SQL & 2) {
echo _("Check for ACCESS_LOG_SQL passwords in POST requests"), " ... ";
// Don't display passwords in POST requests (up to 2005-02-04 12:03:20)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|