0

你好!我的结构如下所示:

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之外,还有其他方法吗?

4

1 回答 1

1

是否有必要将 NULL 设置为自动增量?


,也没有必要通过疯狂的猜测来找到答案。
您必须改为收到错误消息。

为此目的,在连接到 mysqli 之前总是有这条线:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

对于某个查询,key是一个 mysql 关键字,必须用反引号引用

INSERT INTO search(`key`) VALUES (?)
于 2013-09-02T20:26:53.707 回答