Php 插入/更新查询
当尝试插入或更新时,数据库中没有任何内容。 这是桌子的布局Php 插入/更新查询,php,mysql,Php,Mysql,当尝试插入或更新时,数据库中没有任何内容。 这是桌子的布局 ( `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`
(
`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是唯一的密钥。用户id是会话查看的内容。我希望用户id可以有两行,因此只有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);
如果没有其他方法,那么用户id也可以是唯一的,每个用户只有一行您可以向我们显示最终查询吗?在
$query=sprintf(…)
之后使用类似的内容:
也许你的$abstract
中有一句简单的引语?您可以使用mysql\u real\u escape\u string()
来避免它:
$thesis_Name = mysql_real_escape_string($thesis_Name);
$abstract = mysql_real_escape_string($abstract);
你能告诉我们最后的问题吗?在
$query=sprintf(…)
之后使用类似的内容:
也许你的$abstract
中有一句简单的引语?您可以使用mysql\u real\u escape\u string()
来避免它:
$thesis_Name = mysql_real_escape_string($thesis_Name);
$abstract = mysql_real_escape_string($abstract);
mysql\u error()
函数通常我们根据PHP逻辑决定使用哪个查询,如下所示
if ($_POST['id']) {
$query = "INSERT..."
} else {
$query = "UPDATE..."
}
mysql\u error()
函数通常我们根据PHP逻辑决定使用哪个查询,如下所示
if ($_POST['id']) {
$query = "INSERT..."
} else {
$query = "UPDATE..."
}
会发生什么?是否报告错误?你的具体问题是什么?或者我们应该和你一起猜测吗?看在上帝的份上,使用参数化查询如果你不知道Keith是什么意思,或者他为什么这么说,请阅读从哪里获得
$id
值?如果每个用户标识可以有两行,那么为该行创建一列(行号枚举(1,2))并在(用户标识,行号)上创建一个唯一键不是很容易吗?没有错误。它只是不放在桌子上发生了什么?是否报告错误?你的具体问题是什么?或者我们应该和你一起猜测吗?看在上帝的份上,使用参数化查询如果你不知道Keith是什么意思,或者他为什么这么说,请阅读从哪里获得$id
值?如果每个用户标识可以有两行,那么为该行创建一列(行号枚举(1,2))并在(用户标识,行号)上创建一个唯一键不是很容易吗?没有错误。它只是不放在桌子上谢谢你的帮助。这样,它添加了insert,但添加了另一行(具有相同的id和不同的id),而不是更新我插入的内容。因此,现在不会添加第二行,但数据不会更改。按save时,它只会将我重定向到正确的页面。你建议试试你的第二段代码吗?就在这时,用die()更改trigger_error();可能是有一个错误显示,你只是没有看到它。让我们确定一下,您在查询中未引用$id有什么原因吗?它说“现在未定义”是错误的。但它不应该是未定义的。你有HTML格式的吗?谢谢你的帮助。这样,它添加了insert,但添加了另一行(具有相同的id和不同的id),而不是更新我插入的内容。因此,现在不会添加第二行,但数据不会更改。按save时,它只会将我重定向到正确的页面。你建议试试你的第二段代码吗?就在这时,用die()更改trigger_error();可能是有一个错误显示,你只是没有看到它。让我们确定一下,您在查询中未引用$id有什么原因吗?它说“现在未定义”是错误的。但它不应该是未定义的。有HTML格式的吗?