PHP oops变量传递错误

时间:2013-05-29 07:54:47

标签: php mysql sql variables

伙计这是我写的代码。我有两个文件。

归档一个。

$regname=$_POST['name']; -----> here the variable passed is john suppose.. 
$sponserid=$_POST['sname'];   
$regemail=$_POST['email'];
$regmobile=$_POST['mobile'];
include 'dbcon.php';
$obj = new dbcon;  
$obj->createUser($regname,$sponserid,$regemail,$regmobile); 
echo $obj;

在上面的代码中,我从表单a获取变量并存储它们。然后我实例化一个对象并将所有这些传递给方法。

我的班级代码是这样的。

class dbcon
{
  public function __construct() //This is the connection construct.
{

        $server = "localhost";
        $user = "eplu";
        $pass = "123456"; //Change on hosting server
        $db = "epl";
        mysql_connect($server, $user, $pass) or die("Error connecting to sql server: ".mysql_error());
        mysql_select_db($db);
        }


public function createUser($regname,$sponserid,$regemail,$regmobile){
        $sql = "INSERT INTO onlinereg (names,sid,emails,mobiles) VALUES (`$regname`,`$sponserid`,`$regemail`,`$regmobile`)";
        mysql_query($sql) or die(mysql_error());
        return "Registration Success";
        }

}

我在“字段列表”中收到类似未知列'john'的错误。 OOPS的新手帮助... Thnx提前.....

3 个答案:

答案 0 :(得分:3)

立即尝试。这不是与OOPS相关的错误,只是数据库的事情。

class dbcon
{
  public function __construct() //This is the connection construct.
{

        $server = "localhost";
        $user = "eplu";
        $pass = "123456"; //Change on hosting server
        $db = "epl";
        mysql_connect($server, $user, $pass) or die("Error connecting to sql server: ".mysql_error());
        mysql_select_db($db);
        }


public function createUser($regname,$sponserid,$regemail,$regmobile){
        $sql = "INSERT INTO onlinereg (names,sid,emails,mobiles) VALUES ('$regname','$sponserid','$regemail','$regmobile')";
        mysql_query($sql) or die(mysql_error());
        return "Registration Success";
        }

}

答案 1 :(得分:2)

因为你在SQL查询值中使用了反引号。你需要使用撇号而不是反引号,否则查询会认为你引用了另一列,在这种情况下,'john'

变化:

 INSERT INTO onlinereg (names,sid,emails,mobiles) VALUES (`$regname`,`$sponserid`,`$regemail`,`$regmobile`)

为:

INSERT INTO onlinereg (names,sid,emails,mobiles) VALUES ('$regname','$sponserid','$regemail','$regmobile')

答案 2 :(得分:1)

简单的改变

`name`

'name' 您使用的是错误的引号。这个问题与OOP没有关系