首先:我在google和stackoverflow中搜索:在mysql中插入自动增量ID,found this on SO but it was not helpful。我找到的其他所有内容都是针对mysqli-> insert_id; 如果我错过了寻找解决方案的一点,我会在评论中使用正确的链接。
我正在尝试将旧的mysql_ -functions“翻译”为mysqli _ 函数。
假设我的旧查询是:
mysql_query("INSERT INTO `bugtracker`
(`id`, `date`, `workerid`, `currURL`, `prevURL`, `bugTitle`, `bugDesc`) VALUES
(NULL, '".time()."', '$worker', '$clean[currURL]', '$clean[prevURL]', '$clean[bugTitle]', '$clean[bugDesc]');");
理解:
($clean[currURL]
= mysql_real_escape_string($_POST['currURL']);
)
新的必须是这样的:
$query = "INSERT INTO `bugtracker` (`id`, `date`, `workerid`, `currURL`, `prevURL`, `bugTitle`, `bugDesc`) VALUES (?, ?, ?, ?, ?, ?, ?)";
$statement = $mysqlicon->prepare($query);
$statement->bind_param('iiissss', 'NULL??', time(), $worker, $_POST['currURL'], $_POST['prevURL'], $_POST['bugTitle'], $_POST['bugDesc']);
$statement->execute();
$statement->close();
问题:无论如何我没有尝试运行我的查询,因为我很好奇我应该如何将之前的“NULL”插入mysqli中的自动增量ID。我应该忽略并将其留空吗?请勿在{{1}}和$query
中显示它?
表结构按此顺序排列:
bind_param
(int11),id
(int11),date
(int11),workerid
(varchar),currURL
(varchar),prevURL
(varchar),bugTitle
(文本)
答案 0 :(得分:2)
请勿在语句中指定此列(id)。