2014-01-20 79 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重寫問題嗎?