mysql 4.x - > 5.x升级问题
im从mysql 4.x升级到5版本。mysql 4.x - > 5.x升级问题
在我的PHP源码中,我有以下源码在MySQL 4.x版本上运行良好。
但如果在MySQL 5.x版本,它不工作。
我认为跟随我的PHP源代码的一部分,导致一些问题的一些嫌疑犯。
如果有人帮我很多appreate
<?
include('_connect_site_01.php');
$DB = new MySQL;
$DB->DBconnect();
if(!$_GET[partner]) $_GET[partner] = "root";
if(!$_GET[spcode]) $_GET[spcode] = "health";
$date = date("Y-m-d");
$Query = "SELECT date FROM partner_count WHERE partner='$_GET[partner]' AND date='$date'";
$DB->ExecSql($Query); $row = $DB->Fetch();
if($row[date] == NULL)
{
$Insert = "INSERT INTO partner_count (id,partner, date, hit) VALUES('','$_GET[partner]','$date','1')";
$DB->ExecSql($Insert);
}
else
{
$Update = "UPDATE partner_count SET hit= hit+1 WHERE partner='$_GET[partner]'";
$DB->ExecSql($Update);
}
?>
你必须在你之后设置colation和字符集连接
SET NAMES koi8r; SET CHARACTER SET koi8r; SET collation_connection = koi8r_general_ci;
打完$ DB->数据库连接();你应该运行:
$DB->ExecSql("SET NAMES koi8r;"); $DB->ExecSql("SET CHARACTER SET koi8r;"); $DB->ExecSql("SET collation_connection = koi8r_general_ci;");
@ cichy的答案是不明确的。对于mysql> = 5.0,你需要应该使用mysql_set_charset()而不是他说的查询。
另外,当您迁移到新的mysql时,数据可能会被破坏。您尚未描述如何执行迁移,因此根本问题可能比仅适当使用mysql_set_charset()
复杂得多。
这只适用于OP使用mysql _ *()函数族(他没有说)。 – 2010-09-12 12:35:04
@ÁlvaroG. Vicario:那么他应该在他的客户端库中使用与'mysql_set_charset()'完全同义的函数。其他实现在思想上是错误的,并且可能是脆弱的。 – zerkms 2010-09-12 12:41:57
“它不工作”是什么意思?什么实际上不工作? – zerkms 2010-09-12 06:53:27
也 - 打开'error_reporting(E_ALL);'并且让你的脚本没有任何警告和通知。 – zerkms 2010-09-12 06:54:27
即时通讯对不起,我没有解释我的严重问题是什么!我的问题是即时通讯使用韩国语言..但升级后的MySQL 5.x版本。字符被打破,所以它看起来像'????'。我想我听说MySQL 5.x中的日期函数与mysql 4.x相比发生了变化。但不完全知道 – paul 2010-09-12 08:01:47