gpt4 book ai didi

php - 在 php 中使用 mysql 查询中的类/对象属性

转载 作者:行者123 更新时间:2023-11-29 13:29:58 25 4
gpt4 key购买 nike

我正在创建一个简单的 php 用户系统,我有一个用户类,并且我使用用户类中的此函数(添加)存储新的用户值:

    private function NewUser($nome, $email, $tel, $cidade, $estado, $aniversario) {
$this -> name = mysql_real_escape_string($nome);
$this -> email = mysql_real_escape_string($email);
$this -> telefone = mysql_real_escape_string($tel);
$this -> cidade = mysql_real_escape_string($cidade);
$this -> estado = mysql_real_escape_string($estado);
$this -> dia = substr($aniversario, 0, 2);
$this -> mes = substr($aniversario, 3, 2);
$this -> ano = substr($aniversario, 6);

}

public function Add($nome, $email, $tel, $cidade, $estado, $aniversario) {
$this -> NewUser($nome, $email, $tel, $cidade, $estado, $aniversario);
$Create_query = "INSERT INTO user (nome, email, telefone, cidade, estado, dia, mes, ano) VALUES ('{$this -> name}', '{$this -> email}',
'{$this -> telefone}', '{$this -> cidade}', '{$this -> estado}', '{$this - > dia}', '{$this -> mes}', '{$this -> ano}')";
$query_user = connectdb::sql_query($Create_query); // my connect class
if ($query_user) {
$answer = array('done' => 'done');
echo json_encode($answer);
}
else {
validate::returnError();
}
}

如果我尝试使用 $this -> 属性或 '$this -> 属性' 运行插入,我得到了 User 类的对象无法转换为字符串错误,但如果我运行为 '{$this -> 属性}'它有效。我在堆栈溢出答案中找到了这些 {} 方法,但没有详细信息,有人可以解释为什么它有效,以及它是否安全/正确吗?感谢您抽出时间。

最佳答案

回答有关花括号的问题:大括号用于显式指定变量名称的结尾。

一些例子可以在这里看到: http://docs.php.net/manual/en/language.variables.variable.php

至于错误(User 类的对象...):问题是 $this -> 属性 中存在空格。由于您在字符串内部使用它们,因此空格将被解释​​为空格。因此它尝试将 $this 转换为字符串,这是不可能的(请参阅错误)。如果您使用大括号,php 就会确切地知道变量何时开始和何时结束。

另一个注意事项:尝试使用 PDO 而不是简单的 mysql_query...看看这里:http://php.net/manual/de/book.pdo.php

关于php - 在 php 中使用 mysql 查询中的类/对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19612971/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com