如何使用bind_param在MySQLi中使用MySQL NOW()函数插入记录?

Joh*_*nUS 7 php mysql mysqli sqlbindparameter

我需要在PHP中使用绑定参数在MySQLi PDO中执行这个mysql查询:

mysql_query("INSERT INTO `posts` (post_name,publish_date) VALUES ($post_name,NOW()) ")
Run Code Online (Sandbox Code Playgroud)

我使用这样的脚本,但它没有正确插入publish_date.

$publish_date = 'NOW()';
$insert = $mysqli->prepare("INSERT INTO posts (post_name,publish_date) VALUES (?,?)");
$insert->bind_param("ss", $post_name $publish_date);
$insert->execute();
Run Code Online (Sandbox Code Playgroud)

它将记录插入到publish_date列中,如下所示:0000-00-00 00:00:00

我该怎么做?提前致谢.

PS:日期列的类型是datatime.

Ham*_*ite 27

它不是查询的参数,因为您不必向MySQL提供值.

$insert = $mysqli->prepare("INSERT INTO posts (post_name, publish_date) VALUES (?, NOW())");
Run Code Online (Sandbox Code Playgroud)

  • 另外:你最后插入`0000-00-00 00:00:00`的原因是你试图插入字符串''NOW()'`而不是可识别的日期时间值.MySQL将字符串强制转换为日期时间值,它选择的值是零日期. (2认同)