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

时间:2017-06-28 12:50:22

标签: php sql datetime-format

我有一个临时表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的例子,因为我不知道如何添加它,这跟随我的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;
} 

请告诉我,我如何更改代码以解决此问题?

2 个答案:

答案 0 :(得分:1)

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注入的影响。更好地使用准备好的陈述。

答案 1 :(得分:1)

现在不是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.不需要使用引用,只需使用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/