如何在 PHP 中使用函数 NOW()
How use the function NOW() in PHP
我有一个临时 table SQL。我有一个文件,其中提供了通过 get_current_user
修改任何信息的用户的名称。
我添加了另一个字段 type=DATETIME
来恢复用户修改的日期和时间。
在 PHP
中,我像添加我的所有功能一样添加了它,但出现错误。
代码如下:
$sql = "INSERT INTO `...`.`correspondants_bis`
(`code_client` , `name`, `surname` ,`phone`, `fax`, `email`, `added_by`, `Date`, `condition`)
VALUES ('" . $correspondent->getCodeClient() . "',
'" . str_replace("'", "''", $correspondent->getName()) . "',
'" . str_replace("'", "''", $correspondent->getSurname()) . "',
'" . $correspondent->getPhone() . "',
'" . $correspondent->getFax() . "',
'" . $correspondent->getEmail() . "',
'" . $user . "','" . NOW() . "',
'1'
);";
错误是:
Fatal error: Call to undefined function.....
Attempted to call function "NOW" from namespace....
我知道 NOW() 是一个 SQL function
,只是我给你举了一个 insert
的例子,因为我不知道如何添加它,这是在我的 [=19= 之后]:
public function getCorrespondentByIdBis($id) {
$statement = "SELECT * FROM `correspondants_bis` WHERE `id`='" . $id . "'";
$result = $this->_db->query($statement);
while ($data = $result->fetch()) {
$correspondent = new CorrespondentBis($data['id'], $data['code_client'], $data['name'], $data['surname'], $data['phone'], $data['fax'], $data['email'], get_current_user(), NOW(), 0);
}
}
return $correspondent;
}
你能告诉我如何更改我的代码来解决这个问题吗?
NOW()
是一个 SQL 函数,所以在 PHP:
中不需要它
$sql = "INSERT INTO `...`.`correspondants_bis`
(`code_client` , `name`, `surname` ,`phone`, `fax`, `email`, `added_by`, `Date`, `condition`)
VALUES ('" . $correspondent->getCodeClient() . "',
'" . str_replace("'", "''", $correspondent->getName()) . "',
'" . str_replace("'", "''", $correspondent->getSurname()) . "',
'" . $correspondent->getPhone() . "',
'" . $correspondent->getFax() . "',
'" . $correspondent->getEmail() . "',
'" . $user . "',NOW(),
'1'
);";
旁注:以这种方式构建您的 SQL 语句,使您容易受到 SQL 注入。最好使用准备好的语句。
现在不是 php 函数所以替换
NOW()
到
date('Y-m-d H:i:s')
所以你的最终代码
$correspondent = new CorrespondentBis($data['id'], $data['code_client'], $data['name'], $data['surname'], $data['phone'], $data['fax'], $data['email'], get_current_user(), date('Y-m-d H:i:s'), 0);
2.no 需要用引号,直接用 NOW()
所以你的最终查询
$sql = "INSERT INTO `...`.`correspondants_bis`
(`code_client` , `name`, `surname` ,`phone`, `fax`, `email`, `added_by`, `Date`, `condition`)
VALUES ('" . $correspondent->getCodeClient() . "',
'" . str_replace("'", "''", $correspondent->getName()) . "',
'" . str_replace("'", "''", $correspondent->getSurname()) . "',
'" . $correspondent->getPhone() . "',
'" . $correspondent->getFax() . "',
'" . $correspondent->getEmail() . "',
'" . $user . "',
NOW(),
'1'
);";
了解更多信息
我有一个临时 table SQL。我有一个文件,其中提供了通过 get_current_user
修改任何信息的用户的名称。
我添加了另一个字段 type=DATETIME
来恢复用户修改的日期和时间。
在 PHP
中,我像添加我的所有功能一样添加了它,但出现错误。
代码如下:
$sql = "INSERT INTO `...`.`correspondants_bis`
(`code_client` , `name`, `surname` ,`phone`, `fax`, `email`, `added_by`, `Date`, `condition`)
VALUES ('" . $correspondent->getCodeClient() . "',
'" . str_replace("'", "''", $correspondent->getName()) . "',
'" . str_replace("'", "''", $correspondent->getSurname()) . "',
'" . $correspondent->getPhone() . "',
'" . $correspondent->getFax() . "',
'" . $correspondent->getEmail() . "',
'" . $user . "','" . NOW() . "',
'1'
);";
错误是:
Fatal error: Call to undefined function.....
Attempted to call function "NOW" from namespace....
我知道 NOW() 是一个 SQL function
,只是我给你举了一个 insert
的例子,因为我不知道如何添加它,这是在我的 [=19= 之后]:
public function getCorrespondentByIdBis($id) {
$statement = "SELECT * FROM `correspondants_bis` WHERE `id`='" . $id . "'";
$result = $this->_db->query($statement);
while ($data = $result->fetch()) {
$correspondent = new CorrespondentBis($data['id'], $data['code_client'], $data['name'], $data['surname'], $data['phone'], $data['fax'], $data['email'], get_current_user(), NOW(), 0);
}
}
return $correspondent;
}
你能告诉我如何更改我的代码来解决这个问题吗?
NOW()
是一个 SQL 函数,所以在 PHP:
$sql = "INSERT INTO `...`.`correspondants_bis`
(`code_client` , `name`, `surname` ,`phone`, `fax`, `email`, `added_by`, `Date`, `condition`)
VALUES ('" . $correspondent->getCodeClient() . "',
'" . str_replace("'", "''", $correspondent->getName()) . "',
'" . str_replace("'", "''", $correspondent->getSurname()) . "',
'" . $correspondent->getPhone() . "',
'" . $correspondent->getFax() . "',
'" . $correspondent->getEmail() . "',
'" . $user . "',NOW(),
'1'
);";
旁注:以这种方式构建您的 SQL 语句,使您容易受到 SQL 注入。最好使用准备好的语句。
现在不是 php 函数所以替换
NOW()
到
date('Y-m-d H:i:s')
所以你的最终代码
$correspondent = new CorrespondentBis($data['id'], $data['code_client'], $data['name'], $data['surname'], $data['phone'], $data['fax'], $data['email'], get_current_user(), date('Y-m-d H:i:s'), 0);
2.no 需要用引号,直接用 NOW()
所以你的最终查询
$sql = "INSERT INTO `...`.`correspondants_bis`
(`code_client` , `name`, `surname` ,`phone`, `fax`, `email`, `added_by`, `Date`, `condition`)
VALUES ('" . $correspondent->getCodeClient() . "',
'" . str_replace("'", "''", $correspondent->getName()) . "',
'" . str_replace("'", "''", $correspondent->getSurname()) . "',
'" . $correspondent->getPhone() . "',
'" . $correspondent->getFax() . "',
'" . $correspondent->getEmail() . "',
'" . $user . "',
NOW(),
'1'
);";
了解更多信息