2

私は angularJS のブログに取り組んでおり、php を使用してデータベースからのデータで json を生成しています。私の角度のある「記事を取得」機能は次のようになります

$scope.getDetail = function() {
        $http.get('php/blogGetArticle.php?id=2').success(function(json) {
            $scope.jsonDetail = json;
            alert('ok');
        }).error(function() {
            alert('error');
        });
    };

私のphp「blogGetArticle.php」は次のようになります。

<?php
    $id = $_GET['id'];

    $dbhost = "localhost";
    $dbport = "5432";
    $dbname = "pd";
    $dbuser = "postgres";
    $dbpass = "123";
    $connect = pg_connect("host=" . $dbhost . " port=" . $dbport . " dbname=" . $dbname . " user=" . $dbuser . " password=" . $dbpass);
    if(!$connect)
        die("error 0"); // connect error

    $query = "SELECT * FROM blog WHERE id=" . $id;
    $result = pg_query($connect, $query);
    if(!$result)
        die('error 1'); // query error

    $row = pg_fetch_row($result);
    $json = '{';
    $json .= '"id":"' . addslashes($row[0]) . '",';
    $json .= '"title":"' . addslashes($row[1]) . '",';
    $json .= '"message":"' . addslashes($row[2]) . '",';
    $json .= '"category":"' . addslashes($row[4]) . '"';
    $json .= '}';

    echo $json;
?>

今私がやろうとしているのは、php内で何かを呼び出すときに角度関数を.errorブランチに移動させようとすることです..うまく説明する方法がわかりません。php に 10 未満の id がある場合の例では、角度関数に例外をスローさせたいのですが、php ファイルからその例外を角度関数にスローさせたいと考えています。

ありがとう、ダニエル!

編集: 4xx または 5xx エラーをスローするにはどうすればよいですか?

4

3 に答える 3

1

あなたは好きにすることができます

  if(!$connect)
      // or may be code 500
       header("HTTP/1.0 404 Not Found");
       exit; 

$query = "SELECT * FROM blog WHERE id=" . $id;
$result = pg_query($connect, $query);
if(!$result)
    header("HTTP/1.0 404 Not Found");
    exit;

これ以上苦労せずにhttp://us.php.net/manual/en/function.json-encode.phpを試すことをお勧めします:)

さよなら

于 2013-09-13T15:42:20.453 に答える