Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更新MySQL时的迁移问题_Php_Mysql_Iis_Azure - Fatal编程技术网

Php 更新MySQL时的迁移问题

Php 更新MySQL时的迁移问题,php,mysql,iis,azure,Php,Mysql,Iis,Azure,我已经将一个定制PHP应用程序从Linux VPS迁移到了Windows Azure网站,唯一的问题似乎是用SendGrid替换PHP_mail。目前,该应用程序完全是从头开始编写的,没有任何框架,并使用MySQL进行数据存储。迁移应用程序时,我创建了一个.sql文件,并使用MySQL Workbench在我的新数据库服务器上创建表 我发现的问题是,我可以使用当前用户登录,但无法成功更新表。没有应用程序添加另一行的迹象。但是,应用程序的行为就好像它是成功的一样,并继续显示“成功”页面。但是,由于

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

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

我可以看出这两个数据库之间的区别是,原始表名有一个大写字母,而在新的db服务器上,它们都是小写的表名

我已经尝试过从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' ) ;

}   

?>

我显然不知道为什么,但我将相同的代码(不带SendGrid)迁移到了OpenShift,而不是Windows Azure,并且按照预期工作


这是IIS重写问题吗?

只需尝试将ClearDB表中的字母大小写更改为与旧表完全相同的大小写。我会看看会发生什么,但当您可以检索信息但无法更新信息时,为什么大小写会很重要?编辑:ClearDB被配置为只允许小写的表名。到目前为止我还没有尝试ClearDB。只是一个建议,看看是否会有任何改变!