我在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')”部分。弹出以下错误。
调用操作时出错。检查你的操作 输入或服务器代码,并再次尝试调用该操作。
原因:注意:尝试获取非对象的属性 C:\ XAMPP \ htdocs中\ fypweee_admin \ FYPadminSideV3调试\ SERVICES \ PorductstatushistoryService.php 在第125行
致命错误:在非对象中调用成员函数toString() C:\ XAMPP \ htdocs中\ fypweee_admin \ FYPadminSideV3调试\ SERVICES \ PorductstatushistoryService.php 在第125行
这是否意味着timeStamp
var需要格式为'YYYY-MM-dd HH:mm:ss'?
答案 0 :(得分:3)
您的$item
对象有一个属性timeStamp
。您假设timeStamp
的{{1}}属性是一个对象。但错误告诉您$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
变量。
因此,请重新检查您的代码并确保您需要的所有内容都已实例化