2014-01-20 6 views
0

Я перенесла пользовательское приложение PHP с Linux VPS на веб-сайты Windows Azure, и оказалось, что единственной проблемой была замена PHP_mail на SendGrid. В настоящее время это приложение полностью написано с нуля без каких-либо фреймворков и использует MySQL для хранения данных. При переносе приложения я создал файл .sql и использовал MySQL Workbench для создания таблиц на моем новом сервере базы данных.Проблемы с миграцией Обновление MySQL

Проблема, которую я нахожу, заключается в том, что я могу войти в систему с текущими пользователями, однако я не могу успешно обновить таблицы. Нет знака приложения, добавляющего еще одну строку. Однако приложение действует так, как будто оно было успешным, и продолжает страницу «Успех». Однако новый сеанс не создается, поскольку пользователь не создал пользователя.

Различия, которые я могу рассказать между двумя базами данных, это то, что имена исходных таблиц имели заглавную букву, а на новом сервере db - все имена в нижней строке.

Я попытался изменить версию PHP вверх и вниз с 5.4, и я не вносил никаких изменений в операторы MySQL в коде.

Из вашего опыта, что я могу сделать, чтобы помочь мне найти проблему?

EDIT:

Вот часть файла, который должен быть обновление сервера данных:

<?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

Я посмотрю, что произойдет, но почему бы иметь значение, когда вы можете получать информацию, но не можете ее обновить? EDIT: ClearDB настроен только для того, чтобы разрешать имена таблиц в нижнем регистре. –

+0

Я до сих пор не пробовал clearDB. Просто предложение, делает ли это какие-либо изменения! –

ответ

0

я явно не знаю, почему, но вместо Windows Azure я мигрировали тот же код (без SendGrid) в OpenShift и работает так, как ожидалось.

Является ли это проблемой перезаписи IIS?

Смежные вопросы