在SQL查询[PHP]中使用$ object-> get_variable()

时间:2014-04-25 15:17:24

标签: php mysql sql oop

我使用webform将一些数据写入MySQL数据库, 当我从表单中收到输入数据时,我将其存储在一个对象中;

但是当我尝试在我的SQL查询中使用这些数据时,我收到错误。

有人可以帮我吗?

谢谢

ķ

这是对象的初始化:

$nieuweInschrijving = new InvoerGegevens($voornaam, $achternaam, $functie, $bedrijf, $sector, $email);

class InvoerGegevens {

public $voornaam;
public $achternaam;
public $functie;
public $bedrijf;
public $sector;
public $email;
public $datum;
public $uniekeCode;

这是我的班级:InvoerGegegevens

function __construct($paramVoornaam, $paramAchternaam, $paramFunctie, $paramBedrijf, $paramSector, $paramEmail)
{
        $this->voornaam = $paramVoornaam;
        $this->achternaam = $paramAchternaam;
        $this->functie = $paramFunctie;
        $this->bedrijf = $paramBedrijf;
        $this->sector = $paramSector;
        $this->email = $paramEmail;
        $this->uniekeCode = $this->createUniekeCode();
        $this->datum = date("d-m-Y H:i:s");
}
function get_voornaam()
{
    return $this->voornaam;
}
...
function get_uniekeCode()
{
    if(isset($this->uniekeCode))
        return $this->uniekeCode;
    else
        return 0;               
}


function createUniekeCode()
{
    // range is numbers (48) through capital and lower case letters (122)
    $range_start = 48;
    $range_end   = 122;
    $random_string = "";
    $random_string_length = 12;

    for ($i = 0; $i < $random_string_length; $i++) {
      $ascii_no = round( mt_rand( $range_start , $range_end ) ); // generates a number within the range
      // finds the character represented by $ascii_no and adds it to the random string
      // study **chr** function for a better understanding
      $random_string .= chr( $ascii_no );
    }

return  $random_string;
}

这是我的发言:

$echo = "INSERT INTO `tbl_inschrijving` (Voornaam, Achternaam, Functie, Bedrijf, Sector, Email, UniekeCode, Datum) VALUES('$nieuweInschrijving->get_voornaam();'....

我得到的错误是:

Notice: Undefined property: InvoerGegevens::$get_voornaam

感谢您的建议

1 个答案:

答案 0 :(得分:0)

我看起来像

'$nieuweInschrijving->get_voornaam();'`

被解释为

$nieuweInschrijving->get_voornaam . '();'

而不是意图:

$nieuweInschrijving->get_voornaam() . ';'

使用字符串连接,不要依赖PHP的解释。


您还需要转义进入查询的输入。