Php 当响应成功时,更新我的表总是返回空白
我试图通过我的表格和邮递员提交更新请求,但我在回复中不断得到同样的结果 更新: 虽然我的数据库中没有任何变化,但数据已满—第一次清空时,没有任何更新 是否结尾字段会影响查询Php 当响应成功时,更新我的表总是返回空白,php,mysql,pdo,Php,Mysql,Pdo,我试图通过我的表格和邮递员提交更新请求,但我在回复中不断得到同样的结果 更新: 虽然我的数据库中没有任何变化,但数据已满—第一次清空时,没有任何更新 是否结尾字段会影响查询 function update(Request $request, Response $response) { $id = $request->getAttribute('id'); $name = $request->getParam('name'); $start = $reques
function update(Request $request, Response $response) {
$id = $request->getAttribute('id');
$name = $request->getParam('name');
$start = $request->getParam('start');
$end = $request->getParam('end');
$sql = "UPDATE table_timing SET
name = :name,
start = :start,
end = :end
WHERE table_timing.id = :id";
try {
$db = new db();
$db = $db->connect();
$stmt = $db->prepare($sql);
$stmt->bindParam(":id", $id);
$stmt->bindParam(':name', $name);
$stmt->bindParam(':start', $start);
$stmt->bindParam(':end', $end);
$stmt->execute();
$db = null;
$response->getBody()->write
('
{
"notice":
{
"status":"200",
"message":"Updated"
}
}');
} catch(PDOException $e) {
$response->getBody()->write
('
{
"error":
{
"message":'. $e->getMessage() .'
}
}');
}
};
据
“name”、“start”和“end”都是mysql保留字,您必须更改字段名或将字段名用“`”括起来(不加引号)
例如:`姓名`
还有一个例外,我认为这是因为您的查询是错误的,只有在查询根本没有运行时才会显示错误。根据
“name”、“start”和“end”都是mysql保留字,您必须更改字段名或将字段名用“`”括起来(不加引号)
例如:`姓名`
还有一个例外,我认为这是因为您的查询是错误的,只有在查询根本没有运行的情况下才会显示错误。您是否尝试直接在sql控制台上运行sql?@perodriguezl现在就尝试了,我得到了#1064-您的sql语法有错误;我猜这是因为保留了单词name、start、end,但您认为可以在不更改所有字段名称的情况下修复它吗?您是否尝试过直接在sql控制台上运行sql?@perodriguezl现在尝试过,我得到了#1064-您的sql语法有错误;我猜这是因为保留了单词name,start,end,但是你认为不必更改所有字段名就可以修复它吗?我尝试用“”像这样包装字段名
'end'
,但是现在每当我使用postman时,我都会得到“error”:{“message”:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解第3行“名称”、“开始”、“结束”附近使用的正确语法是“`”而不是引号,“!”和“1”左侧的键盘按钮好吧,我试着用没有空格的'name',但现在我得到消息:SQLSTATE[23000]:完整性约束冲突:1048列“name”不能为NULL此帖子的问题已得到解决。错误消息是一个新错误,表示您试图在不允许为NULL值的数据库表字段中放置NULL值。请检查您的表结构。var_转储$id、$name、$start、$end,然后查看哪个字段为NULLmysql中的命令返回此错误#1064-您的SQL语法有错误;请查看与mysql服务器版本对应的手册,以了解在'21:29:06,end
=2017-06-18 21:29:06附近使用的正确语法,其中第1行的id
=1',我尝试过像这样将字段名用''包装起来'end'
,但现在,当r i use postman i get“error”:{“message”:SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解在第3行的“name”、“start”、“end”附近使用的正确语法it is”`“不是引号,键盘按钮在“!”和“1”的左边,好的,所以我试着用没有空格的'name',但现在我得到消息:SQLSTATE[23000]:完整性约束冲突:1048列“name”不能为NULL此帖子的问题已得到解决。错误消息是一个新错误,表示您试图在不允许为NULL值的数据库表字段中放置NULL值。请检查您的表结构。var_转储$id、$name、$start、$end,然后查看哪个字段为NULLmysql中的命令返回此错误#1064-您的SQL语法有错误;请查看与您的mysql服务器版本对应的手册,以了解在'21:29:06,end
=2017-06-18 21:29:06附近使用的正确语法,其中第1行的id
=1'