我正在尝试使用PHP来做一个简单的API,以更新数据库中记录中的特定列。但是,每当尝试类似的操作时,我都会遇到“缺少参数”错误http://localhost/set_is_open.php?open=0&shop_id=2
这是我的API:
<?php
header('Content-Type: application/json');
require_once 'db.php';
if(!isset($_GET["open"]) || empty(trim($_GET["open"])) || !isset($_GET["shop_id"]) || empty(trim($_GET["shop_id"])))
die(json_encode(array("error" => "Missing request paramters.")));
$isOpen = trim($_GET["open"]);
$shop_id = trim($_GET["shop_id"]);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'UPDATE shops
SET is_open = isOpen
WHERE shop_id = shop_id';
mysql_select_db('shops');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not update data: ' . mysql_error());
}
echo "Updated data successfully\n";
mysql_close($conn);
?>
我怀疑我在语法上可能做错了什么,但我无法弄清楚。我在这里遵循了本教程
问题在于您的if
状况。
使用empty(),以下内容被认为是空的:
而且您要open=0&shop_id=2
作为参数插入,因此在这里,open
变量被假定为空。
您只需使用,
if(!isset($_GET["open"]) || trim($_GET["open"]) == '' ||
!isset($_GET["shop_id"]) || trim($_GET["shop_id"] == ''))
die(json_encode(array("error" => "Missing request paramters.")));
另一点是mysql
不建议使用功能。使用mysqli_
或PDO
最好。还要使用准备好的语句来保证安全性。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句