MySQL 更新查询出错


Error with MySQL update query

我现在不知道为什么它不起作用。我也为 Now() 尝试了"整数"。

    $update = 'UPDATE mitarbeiter  SET lastlogin=? WHERE id=?';
    $eintrag = $db->prepare( $update );
    $eintrag->bind_param( 'si', NOW(), $id );
    $eintrag->execute();

NOW()是一个mysql函数,而不是PHP函数。你可能会这样做

$update = 'UPDATE mitarbeiter SET lastlogin=NOW() WHERE id=?';
$eintrag = $db->prepare( $update );
$eintrag->bind_param( 'i', $id );
$eintrag->execute();
now()

PHP中不作为函数存在。

可能您禁用了 PHP 设置display_errors。如果启用此设置,则会看到:

PHP Fatal error:  Call to undefined function now()

NOW()是MySQL中的一个函数,在PHP中有一个等价的函数,叫做date()

执行以下任一操作:

$update = 'UPDATE mitarbeiter  SET lastlogin=NOW() WHERE id=?';
$eintrag = $db->prepare( $update );
$eintrag->bind_param( 'i', $id );
$eintrag->execute();

或:

$update = 'UPDATE mitarbeiter  SET lastlogin=? WHERE id=?';
$eintrag = $db->prepare( $update );
$eintrag->bind_param( 'si', date("Y-m-d H:i:s"), $id );
$eintrag->execute();

我总是对bind_param有问题,而是使用bindValue()。但即使我们说使用bind_param,它也应该是 bindParam() 是吗?

$update = 'UPDATE mitarbeiter SET lastlogin=NOW() WHERE id=?';
$eintrag = $db->prepare( $update );
$eintrag->bindValue( 'i', $id );
$eintrag->execute();

您的问题在该NOW()功能部分失败。它是mysqls而不是phps。要在 php 中执行此操作,下面是以下示例:

$update = 'UPDATE mitarbeiter SET lastlogin=? WHERE id=?';
$eintrag = $db->prepare( $update );
$eintrag->bind_param( 'i', date("Y-m-d H:i:s"), $id );
$eintrag->execute();