我对 MySQL 准备的查询有一些问题。特别是更新和插入。
$mysqliStmt->execute();
它不会更新或插入表中。它只是提供 stmt 结果。没有错误、警告或其他任何内容。(见下文)
我使用的插入查询:
INSERT INTO testdatabase.`test` (`test1`, `test2`) VALUES(?, ?)
更新查询:
UPDATE testdatabase.`test` SET `test1` = ? WHERE `id` = ? LIMIT 1
结果信息(更新):
'fieldCount' => 0,
'affectedRows' => 1,
'numRows' => 0,
'paramCount' => 2,
'insertId' => 0,
'sqlstate' => '00000',
'threadId' => 5291,
'errno' => 0,
'error' => '',
'warningCount' => 0,
'warnings' => false
'connectErrno' => 0,
'connectError' => NULL,
'hostInfo' => 'Localhost via UNIX socket',
'protocolVersion' => 10,
'serverInfo' => '5.1.49-3',
'serverVersion' => 50149,
'clientInfo' => '5.0.27',
'clientVersion' => 50027,
'info' => 'Rows matched: 1 Changed: 1 Warnings: 0'
编码:
$stmt = self::$_connection->prepare($query);
//binds params -> like/with $stmt::bind_param() but more generic
$this->_bindParameters($stmt)
$stmt->execute();
现在更新/插入数据应该存储到数据库中还是我错了?
如果我使用 phpMyAdmin 或 MySQL 控制台来验证查询结果,则数据库表既没有更新,也没有插入新数据。