2016-07-14 11 views
0

私はいくつかの他の資格情報を持つユーザーのMySQLデータベースに対して実行する非常に単純な関数を持っています。私は、期待どおりにその仕事で同様のクエリを実行するいくつかの他の関数を書いています。しかし、現在、私は私のDBに対してクエリを実行するたびに、nullの結果が得られます。私はクエリ自体を取り出し、それを直接(phpmyadmin)実行して、目的の結果を取得することができました。なぜ結果がnullになるのですか?

function getName($user){ 
    $con = mysqli_connect('localhost','*****','*****','*****'); 
    if(mysqli_connect_error()){ 
     echo 'Failed to Connect: '. mysqli_connect_error(); 
     die(); 
    } 
    $stmt = $con->prepare('SELECT firstName,lastName FROM users WHERE user=? LIMIT 1'); 
    $stmt->bind_param('s',$user); 
    $stmt->execute(); 
    $stmt -> bind_result($fname,$lname); 


    $stmt->fetch(); 

    $lArr = str_split($lname); 
    $canName = $fname . ' ' . $lArr[0].'.'; 
    return $canName; 
} 

私は試したことがあります。 var_dumpは常にnullを表示します。誰がなぜこれが起こるのか知っていますか?あなたは結果セットからすべての結果を->fetch()するのを忘れ

+1

を叫びますか? –

+0

はい私は持っていると私は私が探している結果を得る。 – Hans

+1

結果セットの結果を ' - > fetch()'するのを忘れました。変数にバインドするだけでは不十分です – RiggsFolly

答えて

1

は、単に変数にそれらを結合することで、クエリを実行し、十分な

function getName($user){ 
    $con = mysqli_connect('localhost','*****','*****','*****'); 
    if(mysqli_connect_error()){ 
     echo 'Failed to Connect: '. mysqli_connect_error(); 
     die(); 
    } 
    $stmt = $con->prepare('SELECT firstName,lastName FROM users WHERE user=? LIMIT 1'); 
    $stmt->bind_param('s',$user); 
    $stmt->execute(); 
    $stmt -> bind_result($fname,$lname); 

    // now fetch data into the bound variables 
    $stmt->fetch(); 

    $lArr = str_split($lname); 
    $canName = $fname . ' ' . $lArr[0].'.'; 
    return $canName; 
} 
+0

私は答えとしてfetch()をマークしています。しかし、実際にfetch()を使う必要があることが分かっている間に、私はシングルの代わりに二重引用符を使用しなければならないことも発見しました。 fetchでまだヌルを取得すると、二重引用符が必要なものを返すことができました。皆様のご協力に感謝しています。 – Hans

+0

二重引用符はどこに必要ですか? – RiggsFolly

+0

ああ、これを答えにしていませんでしたか?しかし、決して気にしないでください – RiggsFolly

-1

はありませんが(RiggsFollyが言っていたので)あなたは結果を拾っていません。あなたは、あなたのMySQLインスタンスに対して生のクエリを実行しようとした、明白なことを尋ねるために、あなたはすべてのレコードを取り戻すん)(fetchAllのの)(使用はフェッチ

http://php.net/manual/en/pdostatement.fetchall.php http://php.net/manual/en/pdostatement.fetch.php

+0

申し訳ありませんミシャですが、これは**回答ではありません**そのコメントです。既に作成されており、既に回答が投稿されています。コメントをするのに十分な担当者がいるので、答えが無回答の場合には投票しないでください – RiggsFolly

+0

また、彼は 'mysqli_'を使っていますので、PDOメソッドへのリンクはあまり役に立ちません! – RiggsFolly

関連する問題