PHP проблема с классами - PullRequest
       8

PHP проблема с классами

0 голосов
/ 12 декабря 2011

У меня небольшая проблема со следующим кодом:

<?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 Inc «. это добавляется как «Это напоминание, чтобы вы знали, что у вас назначена встреча на {свидание} в»

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

insert операторы не работают так. Вместо:

insert into table set column1 = value1, column2 = value2

Они работают так:

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

Кроме того, я не вижу возможности избежать побега, поэтому я надеюсь, что ни у кого нет компании с апострофом в названии.

0 голосов
/ 12 декабря 2011

похоже, у вас неправильный синтаксис для вставка запроса.Синтаксис запроса на вставку mysql можно указать здесь http://www.w3schools.com/php/php_mysql_insert.asp

Попробуйте использовать его вместо одинарных кавычек,

$ meeting_template = "Это напоминание о том, что у вас назначена встречана "назначении в".$ This-> usercompany ($ UID) "";.

...