PHP的问题与类

时间:2011-12-12 05:22:33

标签: php mysql oop class adodb

我遇到以下代码的问题:

<?php
class appointments
{
    private $conn;

    function __construct($conn)
    {
        $this->conn = $conn;
    }

    function usercompany($uid)
    {
        return $this->conn->getone("SELECT company FROM signup WHERE UID = '".$uid."'");
    }

    function hastemplate($uid)
    {
        return $this->conn->getone("SELECT COUNT(parentid) FROM appointments_templates WHERE parentid = '$uid'");
    }

    function gettemplate($uid)
    {
        if($this->hastemplate($uid)){
            return $this->conn->getrow("SELECT * FROM appointments_templates WHERE parentid = '" . $uid . "'");
        } else {
            $appointment_template = 'This is a reminder to let you know that you have an appointment on {appointment} at '. $this->usercompany($uid);

            $sql = "INSERT INTO appointments_templates SET parentid = '" . $uid . "', content = '" . $appointment_template . "'";
            $this->conn->execute($sql);

            return $this->gettemplate($uid);
        }
    }  
}
?>

当我单独打电话给usercompany($uid)时,我会得到一个正确的结果,即用户公司。但是,当我调用gettemplate($uid)时,新模板会添加到数据库但没有usercompany($uid)的结果。我做错了吗?

编辑:关于INSERT语法:http://milov.nl/2836

回顾一下:问题并不是它没有被添加到数据库,而是被插入为“这是一个提醒,让你知道你在XYZ的{约会}预约公司”它被添加为“这是一个提醒,让你知道你在{约会}的预约

2 个答案:

答案 0 :(得分:3)

insert语句不起作用。而不是:

insert into table set column1 = value1, column2 = value2

他们的工作方式如下:

insert into table (column1, column2) values (value1, value2)

此外,我没有看到任何逃避现象,所以我希望没有人在其名称中有一个撇号的公司。

答案 1 :(得分:0)

插入查询似乎有错误的语法。您可以在这里引用mysql insert query的语法http://www.w3schools.com/php/php_mysql_insert.asp

请尝试使用单引号

$ appointment_template =“这是一个提醒,告诉您在{约会}处预约”。 $这 - &GT; usercompany($ UID) “”;