2014-01-20 148 views
0

我已将自定义PHP应用程序从Linux VPS迁移到Windows Azure网站,并且似乎唯一的问题是用SendGrid替换PHP_mail。目前这个应用程序完全是从头开始编写的,没有任何框架,并使用MySQL来存储数据。在迁移应用程序时,我创建了一个.sql文件,并使用MySQL Workbench在我的新数据库服务器上创建表。迁移问题更新MySQL

我发现的问题是我可以使用当前用户登录,但是我无法成功更新表。没有应用程序添加另一行的迹象。但是,应用程序的行为好像是成功的,并继续成为“成功”页面。但是,由于没有创建用户,因此不会创建新会话。

我可以告诉两个数据库的区别在于,原始表名在大型数据库服务器上有一个大写字母,它们都是小写的表名。

我试着从5.4版本开始改变PHP版本,我还没有对代码中的MySQL语句做任何修改。

出于您的经验,我能做些什么来帮助我找到问题?

编辑:

这里是一个要更新数据服务器的文件的部分:

<?php 
session_start(); 
// store session data 
if ($_SESSION['employerID']<>'') { 
    header("Location: account_details.php"); 
} 
if (($_POST["fname"]<>"") && ($_POST["email"]<>"")) { 
    include ("config/config.php"); 
    getConnect(); 
    $stmt = "insert into tblemployer (shortCode,company, fName, lName,email,address,city,state,zip,password) values ('".mysql_escape_string($_POST["shortCode"])."','".mysql_escape_string($_POST["company"])."','".mysql_escape_string($_POST["fname"])."','".mysql_escape_string($_POST["lname"])."','".mysql_escape_string($_POST["email"])."','".mysql_escape_string($_POST["address"])."','".mysql_escape_string($_POST["city"])."','".mysql_escape_string($_POST["state"])."','".mysql_escape_string($_POST["zip"])."','".md5($_POST["password"])."')"; 
    //echo $stmt; 
    $query = mysql_query($stmt); 

    $EID=mysql_insert_id(); 
    $_SESSION['employerID']=$EID; 
    $_SESSION['userName']=$_POST["company"]; 
    $stmt = "insert into tblmembership (status, employerID, membershipID) values ('0','".$EID."','".mysql_escape_string($_POST["membership"])."')"; 
    //echo $stmt; 
    $_SESSION['MID']=$_POST["membership"]; 
    $query = mysql_query($stmt); 
    header('Location: corp_payment.php') ; 

} 

?> 
+0

只要尝试更改ClearDB表中的字母大小写就像旧的。 –

+0

我会看到会发生什么情况,但为什么遇到问题时可以检索信息,但无法更新?编辑:ClearDB配置只允许小写表名称。 –

+0

我到现在还没有试过clearDB。只是一个建议,是否有任何改变! –

回答

0

我明明不知道为什么,而是Windows Azure中的我迁移相同的代码(不SendGrid )到OpenShift,它按预期工作。

这是IIS重写问题吗?