我跟随该网站创建了自己的REST api [https://www.phpflow.com/php/create-php-restful-api-without-rest-framework-dependency/][1]
我的其余Api在我的远程服务器207.43.8.220:8008中运行。这些是我的php文件,我将它们放在var / www / api下。 connection.php在var / www / api
下 <?php
Class dbObj{
/* Database connection start */
var $servername = "207.43.8.220:8008";
var $username = "root";
var $password = "qwerty";
var $dbname = "UsersApp";
var $conn;
function getConnstring() {
$con = mysqli_connect($this->servername, $this->username, $this->password, $this->dbname) or die("Connection failed: " . mysqli_connect_error());
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
} else {
$this->conn = $con;
}
return $this->conn;
}
}
?>
这些文件(.htaccess和users.php)位于var / www / api / v1下 users.php文件:
// Connect to database
include("../connection.php");
$db = new dbObj();
$connection = $db->getConnstring();
$request_method=$_SERVER["REQUEST_METHOD"];
switch($request_method)
{
case 'GET':
// Retrive Products
if(!empty($_GET["id"]))
{
$id=intval($_GET["id"]);
get_users($id);
}
else
{
get_users();
}
break;
default:
// Invalid Request Method
header("HTTP/1.0 405 Method Not Allowed");
break;
}
function get_users()
{
global $connection;
$query="SELECT * FROM users";
$response=array();
$result=mysqli_query($connection, $query);
while($row=mysqli_fetch_array($result))
{
$response[]=$row;
}
header('Content-Type: application/json');
echo json_encode($response);
}
当我运行207.43.8.220:8008/api/v1/users时,我得到了users.php代码lignes而不是200ok msg的结果。当我将<?php
添加到users.php时,出现500个内部服务器错误,页面空白。我不知道问题出在哪里?通常我应该以json格式获取结果。
注意:我没有创建刚才创建的.htaccess的index.php文件。我的rest api将被android移动应用程序使用。
在查看error.log文件时,我发现问题是由声明相同的方法get_users()引起的。我评论了其中一个功能,然后得到了结果。现在,我想知道如何使用这两种方法,但是要使用不同的输入,就像代码中提到的那样。