php api mysql или postgresql спецификация типа результата для поста обновления

Я получаю запись из базы данных с моим PHP rest API.

http://myapiyrl/product/get.php?id=20

resut:

{
"id": "20",
"name": "laptop",
"color": "white",
"price": "1200"}

Поэтому я хочу отредактировать эту запись. Я публикую эту запись на post.php

http://myapiyrl/product/post.php

private function createUpdateQueryStringFrom($_POST){
$attributes = array();

foreach ($_POST as $key => $value)
$attributes[] = " $key=$value ";

$query_string = " UPDATE product ";
$query_string .= " SET ";
$query_string .= join(",", $attributes);
$query_string .= " WHERE gid = ";
$query_string .= $_POST["gid"];

return $query_string;
}

Эта функция создает строку запроса на обновление следующим образом:

update product set id=20, name=laptop, color=black, price=1250 where id=20

This gives error: pg_query(): Query failed: ERROR:  syntax error at or
near "," ^name=laptop

Я думаю, что этот запрос на обновление должен быть создан по типам столбцов. если столбец является строкой, он будет между («»), если это не номер.

update product set id=20, name="laptop", color="black", price=1250 where id=20

Как я могу решить эту проблему? Могу ли я указать типы при получении из базы данных следующим образом:

{
{"id": "20", "type": "number"}
{"name": "laptop","type": "string"}
{"color": "white","type": "string"}
{"price": "1200","type": "number"}
}

-1

Решение

Вы можете проверить значение с is_numeric и добавьте кавычки соответственно:

foreach ($_POST as $key => $value)
$attributes[] = is_numeric($value) ? " $key=$value " : " $key=\"$value\" ";
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]