我在MVC架构中编写了一个更新数据库函数,但我似乎无法使该函数正常工作。
model.php
public function update($table, $fields, $args, $id) {
# update DB implementation
$argString = implode('\',\'', $args);
$fieldString = implode(',', $fields);
$sql = "UPDATE $table SET ($fieldString) VALUES('$argString') WHERE id=$id";
return($this->connection->query($sql));
}
Controller.php这样
private function updatePlayer($fields, $values) {
return $this->model->update('Players', $fields, $values);
}
控制器中的POST语句
elseif($server['REQUEST_METHOD'] == 'POST') {
# if the ID_FIELD is empty it’s a create request
if(empty($post['id'])) {
# replace FIELD NAMES as per your field names in the database
echo $this->addPlayer(['Player_Name', 'Age', 'City', 'Country', 'Gender', 'Handedness', 'Broom', 'Position', 'Team', 'Favorite_Color', 'Headshot'], [$post['Player_Name'], $post['Age'], $post['City'], $post['Country'], $post['Gender'], $post['Handedness'], $post['Broom'], $post['Position'], $post['Team'], $post['Favorite_Color'], $post['Headshot']]);
}
# if the ID_FIELD is not empty then it’s an update request
else {
echo $this->updatePlayer(['Player_Name', 'Age', 'City', 'Country', 'Gender', 'Handedness', 'Broom', 'Position', 'Team', 'Favorite_Color', 'Headshot'], [$post['Player_Name'], $post['Age'], $post['City'], $post['Country'], $post['Gender'], $post['Handedness'], $post['Broom'], $post['Position'], $post['Team'], $post['Favorite_Color'], $post['Headshot']]);
}
}
非常感谢任何想法或见解。