2017-05-08 68 views
0

我想了解使用REST服务的基础知识。我是following along to this example并试图让它与我的sql数据库一起工作。我将我的api.php文件关闭了一些在注释中重写的代码。我知道只有我的client.php页面才能被网页浏览,但在浏览器中查看其中的任何一个文件时,我都会看到一个空白页面。一切工作正常,当值是硬编码像在例子中,但是当试图从数据库调用值似乎打破。REST调用返回空白页

client.php

<html> 
<body> 

<?php 

if (isset($_GET["action"]) && isset($_GET["id"]) && $_GET["action"] == 
"get_app") 
{ 
    $app_info = file_get_contents('http://localhost:8888/api.php? 
action=get_app&id=' . $_GET["id"]); 
    $app_info = json_decode($app_info, true); 
    ?> 
    <table> 
     <tr> 
     <td>App Name: </td><td> <?php echo $app_info["app_name"] ?></td> 
     </tr> 
     <tr> 
     <td>Price: </td><td> <?php echo $app_info["app_price"] ?></td> 
     </tr> 
     <tr> 
     <td>Version: </td><td> <?php echo $app_info["app_version"] ?></td> 
     </tr> 
    </table> 
    <br /> 
    <a href="http://localhost:8888/client.php?action=get_app_list" alt="app 
list">Return to the app list</a> 
    <?php 
} 
else // else take the app list 
{ 
    $app_list = file_get_contents('http://localhost:8888/api.php? 
action=get_app_list'); 
    $app_list = json_decode($app_list, true); 
    ?> 
    <ul> 
    <?php 

    foreach ((array) $app_list as $app): ?> 
     <li> 
     <a href=<?php echo "http://localhost:8888/client.php? 
action=get_app&id=" . $app["id"] ?> alt=<?php echo "app_" . $app_["id"] ?>> 
<?php echo $app["name"] ?></a> 
    </li> 
    <?php endforeach; 

    ?> 
    </ul> 
    <?php 
} ?> 
</body> 
</html> 

api.php

<?php 
/*DB settings*/ 
ini_set('display_errors',1); 
error_reporting(E_ALL); 
define("MYSQL_HOST", "localhost"); 
define("MYSQL_USER", "root"); 
define("MYSQL_PASS", ""); 
define("MYSQL_DATABASE", "test"); 
$results=array(); 
$result=array(); 

function get_app_by_id($id) 
{ 
$sql = "SELECT * from apps where id=$id"; 
try { 
$dbh = new 
PDO("mysql:host=".MYSQL_HOST.";dbname=".MYSQL_DATABASE.";charset=utf8", 
MYSQL_USER, MYSQL_PASS); 
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$stmt = $dbh->query($sql); 
$result = $stmt->fetchAll(PDO::FETCH_OBJ); 
$dbh = null; 
} catch(PDOException $e) { 
} 

$app_info = $result; 
return $app_info; 
} 

function get_app_list() 
{ 
$sql = "SELECT * FROM apps"; 
try { 
$dbh = new 
PDO("mysql:host=".MYSQL_HOST.";dbname=".MYSQL_DATABASE.";charset=utf8", 
MYSQL_USER, MYSQL_PASS); 
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$stmt = $dbh->query($sql); 
$results = $stmt->fetchAll(PDO::FETCH_OBJ); 
$dbh = null; 
} catch(PDOException $e) { 
} 
$app_list = $results; 
return $app_list; 
} 

?> 

回答

0

尝试使用$ _REQUEST而不是$ _GET希望这将帮助你

+0

可惜还是来了空白 –