挿入または更新しようとすると、データベースには何も入りません。これがテーブルレイアウトです
(
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`thesis_Name` varchar(200) NOT NULL,
`abstract` varchar(200) NOT NULL,
`complete` int(2) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`)
)
ご覧のとおり、idは一意のキーです。user_idは、セッションが参照するものです。user_idが2つの行を持つことができるようにしたいので、idのみが一意である必要があります。したがって、それが挿入または更新のどちらであるかを検索するキーである必要があります。これは私が使用しているものです:
if (empty($err)) {
$id= mysql_real_escape_string($_POST['id']);
$thesis_Name = mysql_real_escape_string($_POST['thesis_Name']);
$abstract = mysql_real_escape_string($_POST['abstract']);
$user_id = intval($_SESSION['user_id']);
$query = sprintf("
INSERT INTO
`thesis`(`id`,`user_id`, `thesis_Name`, `abstract`)
VALUES
('%s','%s', '%s', '%s')
ON DUPLICATE KEY UPDATE
`thesis_Name` = VALUES(`thesis_Name`),
`abstract` = VALUES(`abstract`)
", $id, $user_id, $thesis_Name, $abstract);
それを回避する方法がない場合は、user_idも一意にすることができ、ユーザーごとに1行のみです。