php
  • mysql
  • android-studio
  • 2016-09-26 7 views 1 likes 
    1

    すべての行を定義値から同じユーザー名として選択します。私は定義値からすべての行を選択してください。ユーザー名

    $db->query("SELECT * FROM data WHERE username = $username") 
    

    それが働いて得るていないしようとすると、「データの取得中にエラーが発生しました」。だから、 iは

    $db->query("SELECT * FROM data WHERE(username='".intval($username)."')") 
    

    で再度試して、それが検索に取り組んでいるが、私は正確に行うintval

    <?php 
    
    $response = array(); 
    if(isset($_GET['username'])){ 
    
    $username = $_GET['username']; 
    
    require_once __DIR__ . '/db_config.php'; 
    $db = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE); 
    
    if(mysqli_connect_errno()){ 
        printf("Connect failed: %S\n", mysqli_connect_error()); 
        exit(); 
    } 
    
    if($result = $db->query("SELECT * FROM data WHERE(username='".intval($username)."')"){ 
    
        $rowCount = $result->num_rows; 
        if($rowCount > 0){ 
         $response["data"] = array(); 
         while($row = $result->fetch_assoc()){ 
          $data = array(); 
    
          $data["_id"] = $row["_id"]; 
          $data["date"] = $row["date"]; 
          $data["username"] = $row["username"]; 
          $data["name"] = $row["name"]; 
          $data["lastname"] = $row["lastname"]; 
          $data["tel"] = $row["tel"]; 
    
          array_push($response["data"], $data); 
         } 
         $response["success"]=1; 
        } 
        else{ 
         $response["success"]=0; 
         $response["message"]="The database is empty."; 
        } 
    $result->close(); 
        } 
    else{ 
        $response["success"]=0; 
        $response["message"]="An error occurred while retrieving data."; 
    } 
    } 
    else{ 
    $response["success"]=0; 
    $response["message"]="Required field(s) is missing."; 
    
    } 
    
    echo json_encode($response); 
    
    ?> 
    
    +0

    [変数$ユーザ名は単一引用 ( ')で囲む必要があります]あなたのクエリで 'intval'を使用している理由は? –

    +0

    この列名のデータ型がCharまたはVarcharであることを確認してください '$ db-> query(" SELECT * FROM data WHERE username%WHERE username% "$)"; – Sundar

    +0

    "SELECT * FROMデータWHERE username = "。$ username; – JYoThI

    答えて

    1

    "データベースが空である" GETでこだわっています?

    変換に指定されたベース(デフォルトは10です)を使用して、varの整数値を返します。 INTVAL()そうすることはE_NOTICEレベルのエラーを放出しますので、自然に

    SELECT * FROM data WHERE (username=0) 
    

    とをやって

    1.だからあなたのクエリがほぼ同じである戻りますよう、 オブジェクトに使用すべきではありません「0」のユーザー名がない場合は、一致するものはありません。

    問題の核心はこれです:

    $db->query("SELECT * FROM data WHERE(username='".intval($username)."')" 
    

    あなたはこのようなパラメータを渡すべきではありません。あなたの代わりに行う必要があります。

    $stmt = $db->prepare("SELECT * FROM data WHERE username=?") 
    $stmt->bind_param("s, $username) 
    if($db->execute()) } 
        // and read this on how to fetch 
        // http://php.net/manual/en/mysqli-stmt.fetch.php 
    } 
    
    +0

    このようにしますか? if($ result = $ db-> query( "SELECT * FROM data WHERE username =?")){ $ stmt-> bind_param( "s、$ username"); $ db-> execute(); –

    +0

    ああ!今はうまくいきます! //ありがとうございます^^ –

    +0

    ありがとうございます。 –

    0

    、このいずれかを試してみてください

    $db->query("SELECT * FROM data WHERE username = '$username'") 
    
    +0

    org.json.JSONExceptionでエラーが発生しました:型java.lang.Stringの値

    +0

    phpまたはjavaファイルでエラーが発生しているとは知らない –

    +0

    java !!! @sutinee manrobあなたはmysqliドライバを使用していて、PHPを使用している理由はjavaとのエラー.. –

    関連する問題