【问题标题】:PHP class_name parameter of mysql_fetch_object() functionmysql_fetch_object() 函数的 PHP 类名参数
【发布时间】:2012-02-26 01:20:55
【问题描述】:

我在我的代码中使用了mysql_fetch_object,但由于我试图创建其实例的对象具有构造函数而收到错误消息。

报错如下:Warning: Missing argument 1 for Ratio::__construct() in /Users/Alex/Sites/All Good Things/_manage/c/c_ratio.php on line 9

我能理解;这是Ratio 构造函数的代码:

function __construct($new_name, $new_x, $new_y)
{
    $this->name = $new_name;
    $this->x = $new_x;
    $this->y = $new_y;
}

无论如何,我如何将刚刚创建的结果中的变量传递给函数,即我要做什么是这样的:

while ($currentRatio = mysql_fetch_object(
                              $ratio_rs, 
                              'Ratio', 
                               array(
                                    <VALUE OF NAME>, 
                                    <VALUE OF X>, 
                                    <VALUE OF Y>)))

我找不到第三个参数所需语法的任何示例。

【问题讨论】:

  • 第三个参数是构造函数参数的数组,就像你概述的那样。注意构造函数将在从数据库设置属性之后调用,而不是之前。如果name 是一列,首先将从数据库中获取数据,然后将使用您的参数调用构造函数,然后name 将被您的构造函数代码覆盖。可能这已经是故意的了,只是说。

标签: php mysql oop


【解决方案1】:

使用列别名。列别名取决于您如何构造查询。如果您使用别名(as),那么它应该是别名,否则使用列名。请参阅下面的示例。

$ratio_rs = mysql_query("SELECT Name, x as `X`, y as `Y` from ...");
mysql_fetch_object($ratio_rs, 
    'Ratio', 
    array(
        'Name', 
        'X', 
        'Y'
    )
);

【讨论】:

    猜你喜欢
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2012-02-16
    • 1970-01-01
    相关资源
    最近更新 更多