Php 如何为函数更新编写RESTAPI方法?
我设计了一个在C#和MySQL之间执行“Rest api”的查询,其功能如下: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
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#标记。