0

私はphpスクリプトに次の関数を持っています、

public function createPorductstatushistory($item) {

    $stmt = mysqli_prepare($this->connection, "INSERT INTO $this->tablename (timeStamp, ProductDetail_idProduct, ProductStatus_idStatus) VALUES (?, ?, ?)");
    $this->throwExceptionOnError();

    mysqli_stmt_bind_param
    ($stmt, 'sii', 
    $item->timeStamp->toString('YYYY-MM-dd HH:mm:ss'), 
    $item->ProductDetail_idProduct, 
    $item->ProductStatus_idStatus);
    $this->throwExceptionOnError();

    mysqli_stmt_execute($stmt);     
    $this->throwExceptionOnError();

    $autoid = mysqli_stmt_insert_id($stmt);

    mysqli_stmt_free_result($stmt);     
    mysqli_close($this->connection);

    return $autoid;
}

しかし、「$ item-> timeStamp-> toString('YYYY-MM-dd HH:mm:ss')」の部分に移動するたびに。次のエラーが表示されます。

操作の呼び出し中にエラーが発生しました。操作入力またはサーバーコードを確認して、操作の呼び出しを再試行してください。

理由:注意:125行目のC:\ xampp \ htdocs \ fypweee_admin \ FYPadminSideV3-debug \ services\PorductstatushistoryService.phpで非オブジェクトのプロパティを取得しようとしています

致命的なエラー:125行目のC:\ xampp \ htdocs \ fypweee_admin \ FYPadminSideV3-debug \ services \ PorductstatushistoryService.phpの非オブジェクトでメンバー関数toString()を呼び出す

timeStampこれは、変数が「YYYY-MM-dd HH:mm:ss」の形式である必要があることを意味し ますか?

4

1 に答える 1

3

オブジェクト$itemにはプロパティがありますtimeStamptimeStampのプロパティが$itemオブジェクトであると想定します。しかし、エラーはそれtimeStampがオブジェクトではないことを示しています。

これは、オブジェクトのインスタンスをに設定しないことを意味する場合がありますtimeStamp

例:

class TimeStamp
{
    time = '13:00';
}

class Item
{
    public $timeStamp;
}

$item = new Item();
$item->timeStamp->time;

これにより、このようなエラーが発生します。初期化して変数TimeStampに割り当てる必要があります。$timeStamp

class TimeStamp
{
    time = '13:00';
}

class Item
{
    public $timeStamp;

    public Item()
    {
        $this->$timeStamp = new TimeStamp();
    }
}

$item = new Item();
$item->timeStamp->time;

コンストラクターで初期化され、変数TimeStampに割り当てられるため、これで機能するはずです。$timeStamp

したがって、コードを再確認して、必要なものがすべてインスタンス化されていることを確認してください

于 2012-10-05T13:42:37.323 に答える