SugarCRM Database变量不允许我从我自己的属性调用quote()函数

时间:2014-10-08 11:59:41

标签: php mysql sugarcrm

我正在构建SugarCRm模块。它使用旧的基本MySQL函数,如PHP4天......

系统中的大多数模块访问一个数据库包装类,调用此Global变量然后使用它。

global $db;

$db->quote($some_SQL_Query_To_Execute);

现在我并不喜欢那样,所以在我自己的构造函数方法中的自定义模块类中,我正在做这个......

class MyModuleClassHereForSODemo
{

    public $db;

    public function __cnstructor($id){

        $this->db = DBManagerFactory::getInstance();

    }


    public function insertDBRecordFunctionHERE($id){

        $sql = "INSERT INTO `db_table_name` (
        `topic_id`,
        `project_id`,
        `topic_subject`,
        `topic_content`,
        `date_created`,
        `date_last_post`,
        `created_by_user_id`,
        `last_post_user_id`,
        `posts_replies`
        ) VALUES(
            NULL,
        '$this->db->quote($project_id)',
        '$this->db->quote($topic_subject)',
        '$this->db->quote($topic_content)',
        UTC_TIMESTAMP(),
        UTC_TIMESTAMP(),
        '$this->db->quote($created_by_user_id)',
        '$this->db->quote($created_by_user_id)',
        '0');";

        $this->db->query($sql);

    }



}

现在这是我遇到的问题,上面的SQL查询无效,因为我在我的变量上调用$this->db->quote() ...现在,如果我改为使用GLOBAL $ db,那是非常奇怪和令人沮丧的变量,然后我可以运行它而不是$db->quote()并且它整天都在工作......它只要我在我自己的类$ db属性上运行quote()方法就会破坏所有内容。 / p>

这可能是因为系统将它们视为与DB的不同连接,即使它是一个Singleton,应该是我想象的相同变量和对象....任何想法?

此外,我没有访问我正在访问的数据库类的所有代码,但我知道quote方法只是调用mysql_real_escape_string

0 个答案:

没有答案