我目前有一个大型Web应用程序连接到MSSQL以获取其数据.这个Web应用程序有数百个.php文件.我有一个新客户,他不想使用MSSQL,而是使用
MySQL.
我搜索并发现了很多关于如何迁移数据的文章.但那不是我的问题.我知道如何做到这一点,除了一些默认目录,我们将从一个空白数据库开始.
我需要知道的是,是否有办法自动将mssql_query代码更改为mysqli代码.例如:
$SqlText = 'SELECT a, b, c FROM table WHERE x=y';
if (!$result = mssql_query($SqlText) {
die('Error');
}
while ($row = mssql_fetch_assoc($result) {
echo '<td>' . $row['a'] . '</td>';
echo '<td>' . $row['b'] . '</td>';
echo '<td>' . $row['c'] . '</td>';
}
变成这样的东西:
$SqlText = 'SELECT a, b, c FROM table WHERE x=y';
if (!$result = mssqli_query($db, $SqlText) {
die('Error');
}
while ($row = mssqli_fetch_assoc($result) {
echo '<td>' . $row['a'] . '</td>';
echo '<td>' . $row['b'] . '</td>';
echo '<td>' . $row['c'] . '</td>';
}
此外,正如您所看到的,我使用的是旧的mssql_query代码,这在新版本的PHP中甚至不受支持.是否至少有一个工具可以将我的代码从mssql_query更改为新版本的sqlserv_query类型的命令?
任何帮助非常感谢.
最佳答案 我不认为有一种完全自动的方式.因为MySQL有’LIMIT’,例如MSSQL有’TOP’.当然,这不一定是一个问题,但我不确定复杂的MSSQL查询是否会将1:1转换为MySQL.
并建议你使用“标志指出MySql它是数据库,表或列名的成员.例:
$SqlText = 'SELECT a, b, c FROM table WHERE x=y';
会变成
$SqlText = 'SELECT `a`, `b`, `c` FROM `table` WHERE `x`=y';
现在您可以进行查询
'SELECT `select` FROM `datetime` WHERE `limit` = 1'
否则,单词,select,datetime和limit将干扰MySql语法.