Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何为函数更新编写RESTAPI方法?_Php_Mysql - Fatal编程技术网

Php 如何为函数更新编写RESTAPI方法?

Php 如何为函数更新编写RESTAPI方法?,php,mysql,Php,Mysql,我设计了一个在C#和MySQL之间执行“Rest api”的查询,其功能如下: function index () { $ hadi = "SELECT   wp_postmeta1.post_id,   wp_postmeta1.meta_key,   wp_postmeta1.meta_value FROM wp_postmeta1 WHERE wp_postmeta1.meta_key = '_sku' OR wp_post

我设计了一个在C#和MySQL之间执行“Rest api”的查询,其功能如下:

 function index ()
    {
    $ hadi = "SELECT
      wp_postmeta1.post_id,
      wp_postmeta1.meta_key,
      wp_postmeta1.meta_value
    FROM wp_postmeta1
    WHERE wp_postmeta1.meta_key = '_sku'
    OR wp_postmeta1.meta_key = '_stock'
    OR wp_postmeta1.meta_key = '_price'
    ORDER BY wp_postmeta1.post_id
    ";
        $ res = query ($ hadi);
    while ($ row = mysqli_fetch_assoc ($ res))
    $ rows [] = $ row;
    return $ rows;
    }
要测试此消息,请执行以下操作:

索引测试:指示可接受的显示

[{"post_id": "1927", "meta_key": "_ stock", "meta_value": "27"}, {"post_id": "1927", "meta_key": "_ price", "meta_value": "15000 "}, {" post_id ":" 1927 "," meta_key ":" _ sku "," meta_value ":" 00302016 "}, {" post_id ":" 1928 "," meta_key ":" _ price "," meta_value ": "2200"}, {"post_id": "1928", "meta_key": "_ stock", "meta_value": "10"}, {"post_id": "1928", "meta_key": "_ sku", "meta_value" ":" 00301421 "}, {" post_id ":" 1929 "," meta_key ":" _ sku "," meta_value ":" 00301056 "}, {" post_id ":" 1929 "," meta_key ":" _ price ", "meta_value": "5500"}, {"post_id": "1929", "meta_key": "_ stock", "meta_value": "10"},
[{"post_id": "1928", "meta_key": "_ price", "meta_value": "2200"}, {"post_id": "1928", "meta_key": "_ stock", "meta_value": "10 "}, {" post_id ":" 1928 "," meta_key ":" _ sku "," meta_value ":" 00301421 "}]
而且

function edit ($ post_id)
{
    $ res = query ("SELECT
  wp_postmeta1.post_id,
  wp_postmeta1.meta_key,
  wp_postmeta1.meta_value
FROM wp_postmeta1
WHERE wp_postmeta1.meta_key = '_sku'
OR wp_postmeta1.meta_key = '_stock'
OR wp_postmeta1.meta_key = '_price'
HAVING `post_id` = $ post_id
ORDER BY wp_postmeta1.post_id ");
$ rows = [];
while ($ row = mysqli_fetch_assoc ($ res))
$ rows [] = $ row;
return $ rows;
}
要测试此消息,请执行以下操作:

编辑测试:显示可接受的显示

[{"post_id": "1927", "meta_key": "_ stock", "meta_value": "27"}, {"post_id": "1927", "meta_key": "_ price", "meta_value": "15000 "}, {" post_id ":" 1927 "," meta_key ":" _ sku "," meta_value ":" 00302016 "}, {" post_id ":" 1928 "," meta_key ":" _ price "," meta_value ": "2200"}, {"post_id": "1928", "meta_key": "_ stock", "meta_value": "10"}, {"post_id": "1928", "meta_key": "_ sku", "meta_value" ":" 00301421 "}, {" post_id ":" 1929 "," meta_key ":" _ sku "," meta_value ":" 00301056 "}, {" post_id ":" 1929 "," meta_key ":" _ price ", "meta_value": "5500"}, {"post_id": "1929", "meta_key": "_ stock", "meta_value": "10"},
[{"post_id": "1928", "meta_key": "_ price", "meta_value": "2200"}, {"post_id": "1928", "meta_key": "_ stock", "meta_value": "10 "}, {" post_id ":" 1928 "," meta_key ":" _ sku "," meta_value ":" 00301421 "}]
现在,对于函数更新,我编写了这个方法,它是错误的

function update ()
{
    $ post_id = $ _ GET ['post_id'];
$ meta_key = $ _GET ['meta_key'];
$ meta_value = $ _GET ['meta_value'];

    $ res = query ("UPDATE` wp_postmeta1`
SET `meta_value` = $ meta_value
WHERE `wp_postmeta1`.`post_id` = $ post_id
AND `wp_postmeta1`.`meta_key` = '_stock'
AND `wp_postmeta1`.`meta_value` =` meta_value`
LIMIT 1 ");
  if ($ res)
    return "1 record updated";
else return "error";
}
要测试此消息,请执行以下操作:

更新测试:错误
你的方式是什么?就在昨天,我学到了一种叫做“原始观察”的东西。使用pretty是有益的。由于Web部件固有的弱类型化,特定的Web服务调用可能会从中受益

我通常做的另一件事是并发控制。我更喜欢乐观并发(不锁定,只在更新期间测试更改)。在SQL中,我得到了Rowversion列以避免更新竞争条件。我只是把它和其他的东西一起检索,这是一个需要添加到updateswere子句中的东西。如果存在错误匹配,可能会引发SQL异常


根据,使用正确的开关,时间戳可以类似于rowversion。请记住,异常快速的查询和更新(一个自动过程)仍然可能会遇到/导致时间戳冲突。让SQL rowversion成为一个简单的运行计数器是明智的。

我感到困惑。您用C#标记了您的问题,但代码看起来非常像PHP。你用哪种语言?在任何情况下,您都应该仔细阅读MySQL中使用准备好的语句。我将在C#Sharp和MySQL rest api之间进行操作,但现在我正在进行php编程。您的解决方案是什么?你有什么疑问write@HadiFazilat我对PHP有点生疏,无法为它编写查询。IIRC,它使用那些wierd准备的语句,而不是参数化查询。老实说,我看到这个问题只是因为C#标记。