从旧PHP迁移到新PHP

时间:2014-06-06 06:29:09

标签: php mysql variables

我有一个与php5.3一起使用的旧网页,我试图在php5.5的测试环境中运行它,一切都坏了X)

我意识到php标签只是以<?而不是<?php开始,将标签添加到标签似乎解决了一些问题,但是现在我有一个非常奇怪的问题

注意:未定义的变量:第175行的C:\ xampp \ htdocs \ ekey \ register.php中的Id 错误:您的SQL语法中有错误;查看与您的MySQL服务器版本相对应的手册,以获得在&#39;&#39;附近使用的正确语法。第1行

最初我试图从会话状态ID获取变量Id(在php 5.3的实际站点中工作)但在我的测试环境中使用php 5.5我得到了

<?php if(isset($_SESSION['LOGIN_STATE_ID']) && ($_SESSION['LOGIN_STATE_ID'] > 0))   
     $Id=10;
     //$Id=$_SESSION['LOGIN_STATE_ID'];
     $sql='SELECT * FROM tbl_members WHERE member_id ='. $Id;
     $rs=mysql_query($sql)      or die("MYSQL Error: " . mysql_error());;
     $row=mysql_fetch_array($rs);
     $member_first_name=$row["member_first_name"]; 
     $member_last_name=$row["member_last_name"]; 
     $member_email_id =$row["member_email_id"]; 
     $member_country =$row["member_country"]; 
     $member_state=$row["member_state"]; 

 ?>

因此,作为测试,我决定在使用它之前手动将变量定义为10 ....我仍然得到相同的错误!!!

如果你要问,我很确定它的php版本,我用php 5.3运行另一个XAMP,那个测试环境中的网站工作得很好!

我还要感谢从5.3到5.5的任何其他经验或迁移提示

1 个答案:

答案 0 :(得分:-1)

你缺少括号。

<?php if(isset($_SESSION['LOGIN_STATE_ID']) && ($_SESSION['LOGIN_STATE_ID'] > 0))   
{
     $Id=10;
     //$Id=$_SESSION['LOGIN_STATE_ID'];
     $sql='SELECT * FROM tbl_members WHERE member_id ='. $Id;
     $rs=mysql_query($sql)      or die("MYSQL Error: " . mysql_error());;
     $row=mysql_fetch_array($rs);
     $member_first_name=$row["member_first_name"]; 
     $member_last_name=$row["member_last_name"]; 
     $member_email_id =$row["member_email_id"]; 
     $member_country =$row["member_country"]; 
     $member_state=$row["member_state"]; 
}
?>

现在,if语句仅影响以下行$Id=10。当statemant为false时,未设置$Id并且您的SQL查询有错误,因为它以member_id=结束。