我一直停留在这个约30分钟,我不知道如果IM俯瞰什么,但我不断收到以下错误(主要是意味着我的SQL无效):IF ELSE不适用于MySQL?
Fatal error: Call to a member function bind_param() on a non-object...
SQL:
IF (SELECT value FROM votes WHERE thread = ? AND owner = ?) THEN
UPDATE votes SET (value = ?) WHERE thread = ? AND owner = ?
ELSE
INSERT INTO votes (thread, owner, value) VALUES (?, ?, ?)
END IF
PHP:
$stmt = $this->database->prepare("IF (SELECT value FROM votes WHERE thread = ? AND owner = ?) THEN UPDATE votes SET (value = ?) WHERE thread = ? AND owner = ? ELSE INSERT INTO votes (thread, owner, value) VALUES (?, ?, ?) END IF");
$stmt->bind_param("dddddddd", $this->id, $userId, $value, $this->id, $userId, $this->id, $userId, $value);
$stmt->execute();
根据MySQL的文档,我应该是正确的?
IF search_condition THEN statement_list
[ELSEIF search_condition THEN statement_list] ...
[ELSE statement_list]
END IF
您正在使用库MySQLi或PDO(用PHP检查)? –
@ErolKESKİNMySQLI –
@CodeCaster Nope。另一个线程正在讨论如何获取错误。这是关于为什么错误正在发生以及如何避开它 – Machavity