3

我完全不明白这一点。

我有一堂课,大致如下:

<?php
class pageData
{
    private $Bookmark;
    private $Program;
    private $Agency;

    //With appropriate setters/getters
}
?>

然后我尝试创建一个新对象,稍微传递一下,最终得到:

mysql_query("INSERT INTO Records (Bookmark, Program, Agency)
VALUES ('$data->getBookmark()', '$data->getProgram()', '$data->getAgency()')");

我最终得到了通知:未定义的属性:pageData::$getBookmark in...

注意:未定义的属性:pageData::$getProgram in...

注意:未定义的属性:pageData::$getAgency in...

使用 PhpMyAdmin 看起来 Bookmark 变成 0 并且 Program 变成 () 并且 Agency 是空的。

如果我输入

print($data->getBookmark());

它打印出书签。如果我输入

echo $data->getBookmark();

它打印出来。为什么我也尝试将其插入数据库时​​它不起作用?

4

2 回答 2

1

它被解释为数据成员

$data->getBookmark后面的变量()

mysql_query("INSERT INTO Records (Bookmark, Program, Agency)
VALUES ('".$data->getBookmark()."',...
于 2013-01-29T20:41:56.273 回答
1

在字符串中使用普通变量以外的任何内容时,您应该在值周围添加大括号:

mysql_query("INSERT INTO Records (Bookmark, Program, Agency)
             VALUES ('{$data->getBookmark()}', '{$data->getProgram()}', '{$data->getAgency()}')");
于 2013-01-29T20:42:10.063 回答