$\u PHP更新后出现错误且未发送选项
我正在尝试$\u发布以下mysql表的更新:$\u PHP更新后出现错误且未发送选项,php,post,mysqli,isset,Php,Post,Mysqli,Isset,我正在尝试$\u发布以下mysql表的更新: 注意:有3个下拉列表:状态、类别和访问权限 app_generalData --------------- app_id table status_id category_id tags access_id 使用print_r($_POST)和echo进行的结果测试确保表单$_POST正常工作: Array ( [MAX_FILE_SIZE] => 100000 [app_id] => 1
注意:有3个下拉列表:状态、类别和访问权限
app_generalData
---------------
app_id
table
status_id
category_id
tags
access_id
使用print_r($_POST)和echo进行的结果测试确保表单$_POST正常工作:Array (
[MAX_FILE_SIZE] => 100000
[app_id] => 1
[title] => Nothing Special
[status] =>
[category] =>
[tags] => new tag
[access] =>
[update] => Update )
表单中的数据。
- ID:1
- 标题:没什么特别的
- 状态:
- 类别:
- 标签:新标签
- 访问:
期望的结果:
//将更新发布到app\u generalData
如果(isset($_POST['update'])){
//打印(邮政美元);
//回声“
”;
//连接到数据库
$dbc=mysqli\u connect(DB\u主机、DB\u用户、DB\u密码、DB\u名称);
//从帖子中获取数据
//一般数据
$app_id=mysqli_real_escape_字符串($dbc,trim($_POST['app_id']);
$title=mysqli\u real\u escape\u字符串($dbc,trim($\u POST['title']);
$status=mysqli\u real\u escape\u字符串($dbc,trim($\u POST['status']);
$category=mysqli\u real\u escape\u string($dbc,trim($\u POST['category']);
$tags=mysqli\u real\u escape\u字符串($dbc,trim($\u POST['tags']);
$access=mysqli\u real\u escape\u字符串($dbc,trim($\u POST['access']);
//与用户确认成功
回显“表单中的数据。
”;
回显“ID:”.$app_ID.
;
回显“Title:”.$Title.“
”;
回显“状态:”.$Status.“
”;
回显“类别:”.$Category.“
”;
回显“标记:”.$Tags.“
”;
回显“访问:”.$Access.“
”;
回声“
”;
//将数据写入数据库
$query=“更新应用程序\u一般数据
SET title=$title,
status_id=$status,
category_id=$category,
tags=$tags,
access\u id=$access
其中app\u id=$app\u id
";
mysqli_查询($dbc,$query)
或die('查询数据库中的常规数据时出错');
//关闭MySQL
mysqli_close($dbc);
退出();
}
否则{
echo“请在下面输入所有详细信息”;
}
每当你发现mysql\u错误时,我建议你做的第一件事就是回显查询,如果问题不是通过查看代码发现的
这里的问题似乎是您没有在'
(引号)中围绕字符串,例如:
在运行
打印($query)
后,我注意到该查询发布了以下内容:
UPDATE app_generalData
SET title = Nothing Special,
status_id = ,
category_id = ,
tags = new tag,
access_id =
WHERE app_id = 1
错误原因:值周围没有标记(“或”)
工作解决方案:
我已将查询更新为以下内容
UPDATE app_generalData
SET title = '".$title."',
status_id = '".$status."',
category_id = '".$category."',
tags = '".$tags."',
access_id = '".$access."'
WHERE app_id = $app_id
";
您是否回应了
mysqli\u错误
?实际错误是怎么说的?@Rasclatt感谢您的建议。我给了您一张赞成票,因为您的建议让我跳出了框框。当我在$query上运行print\r时,我可以看到设置项并没有在$var(s)周围加引号。我将为未来的访问者发布更正后的编辑。感谢您的回复。它是在我发布我自己的更正时通过的,因为我刚刚测试并注意到了同样的事情。我现在测试了您的编辑,它似乎与您编写它的方式相同。我已经给了您一个放弃投票的机会,但是……您能告诉我为什么我的选择是正确的吗ons没有出现在$\u POST中?是否需要在标记中添加其他内容以包含它们$\u POST?如果没有您的html代码,很难判断问题出在哪里,但您最好选择正确的答案,然后用正确的代码重新打开另一个问题,因为这与此问题不同。
$query = "UPDATE app_generalData
SET title = '$title',
status_id = '$status',
category_id = '$category',
tags = '$tags',
access_id = '$access'
WHERE app_id = '$app_id'
";
UPDATE app_generalData
SET title = Nothing Special,
status_id = ,
category_id = ,
tags = new tag,
access_id =
WHERE app_id = 1
UPDATE app_generalData
SET title = '".$title."',
status_id = '".$status."',
category_id = '".$category."',
tags = '".$tags."',
access_id = '".$access."'
WHERE app_id = $app_id
";