嗨!我的表结构如下所示:
CREATE TABLE IF NOT EXISTS `search` (
`key` varchar(255) NOT NULL,
`id` int(15) NOT NULL auto_increment,
UNIQUE KEY `key` (`key`),
KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
这就是我尝试将数据添加到表中的方式:
$stmt = $mysqli->prepare("INSERT INTO search(key) VALUES (?)");
$stmt->bind_param('s',$keyword);
$stmt->execute();
$stmt->close();
这就是我得到的:
Call to a member function bind_param() on a non-object
但是当我这样做时它会起作用:
$stmt = $mysqli->prepare("INSERT INTO search VALUES (?,NULL)");
$stmt->bind_param('s',$keyword);
$stmt->execute();
$stmt->close();
除了将 NULL 添加到 VALUES 之外还有其他方法吗?
答案 0 :(得分:1)
是否有必要将NULL设置为自动增量?
没有。
并且没有必要通过疯狂猜测找到答案
您必须改为收到错误消息。
为了这个目的,始终在连接到mysqli之前使用此行:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
对于某个查询,key
是一个mysql关键字,必须在反引号中引用
INSERT INTO search(`key`) VALUES (?)