如何在PHP中使用NOW()函数

问题描述:

我有一个临时表SQL。我有一个提交给我的用户名称,它修改了get_current_user的任何信息。 我添加了另一个字段type=DATETIME以恢复用户修改的日期和小时。如何在PHP中使用NOW()函数

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例子,因为我不知道怎么样我加了,这下我的select function

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; 
} 

你能告诉我请,我怎么可以改变我的代码来解决这个问题?

现在是不是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' 
    );"; 

了解更多信息

http://www.mysqltutorial.org/mysql-now/

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注入。更好地使用准备的语句

+0

非常感谢你,它工作得很好。我只需要删除引号。 – vero