2017-11-26 19 views
-2

私は特定のユーザー名のmysqlからデータを取得するPHPスクリプトを作成しました。ユーザー名はselect queryで渡され、私はpostmanを使ってphpスクリプトをチェックしています。以下の問題は、選択クエリである私のPHPコードphp select query with parameter error

<?php 
     //getting the database connection 
require_once 'MyDbConnect.php'; 

//an array to display response 
$response = array(); 

//if it is an api call 
//that means a get parameter named api call is set in the URL 
//and with this parameter we are concluding that it is an api call 
if(isset($_GET['apicall'])){ 

switch($_GET['apicall']){ 
    case 'getSpecificData': 
    case 'getSpecificData': 
if(isTheseParametersAvailable(array('your_username'))){ 
//getting values 
$your_username = $_POST['your_username']; 

$heroes = array(); 
$sql = "SELECT your_username,your_mobile,referral_name,referral_contact,referral_email, 
loan_type,loan_amount FROM mytable WHERE your_username = ? "; 
$sql->bind_param("s",$your_username); 

$stmt->execute(); 
$stmt->bind_result($your_username, $your_mobile,$referral_name,$referral_contact, 
$referral_email,$loan_type,$loan_amount); 

//looping through all the records 
while($stmt->fetch()){ 
$temp = [ 
'your_username'=>$your_username, 
'your_mobile'=>$your_mobile, 
'referral_name'=>$referral_name, 
'referral_contact'=>$referral_contact, 
'referral_email'=>$referral_email, 
'loan_type'=>$loan_type, 
'loan_amount'=>$loan_amount 
]; 

//pushing the array inside the hero array 
array_push($heroes, $temp); 

} 
echo json_encode($heroes); 
} 
break; 

default: 
$response['error'] = true; 
$response['message'] = 'Invalid Operation Called'; 
} 
} 
else{ 
//if it is not api call 
//pushing appropriate values to response array 
$response['error'] = true; 
$response['message'] = 'Invalid API Call'; 
} 

function isTheseParametersAvailable($params){ 

//traversing through all the parameters 
foreach($params as $param){ 
//if the paramter is not available 
if(!isset($_POST[$param])){ 
//return false 
return false; 
} 
} 
//return true if every param is available 
return true; 
} 
?> 

です。私は私のPHPコードで私は何も得られない上記のように選択クエリを書くとき。私は選択クエリを記述する場合、私は= "your_username、your_mobile、referral_name、referral_contact、referral_email、 loan_type、WHERE your_username = 'ロハン' mytableはFROM loan_amount SELECT" を適切なデータに

$のSQLを取得する次のように。

誰かが私にエラーの原因を説明できますか?どんな助けでも大歓迎です。

答えて

0

あなたは変数の結合を逃している:

// $stmt->bind_param("ss",$your_username); 

は、あなたのコード内ですでにです。

$stmt->bind_param("s",$your_username); 

"s"は変数が文字列であることを示し、バインディングは "?"を "置き換え"ます。クエリ内にあります。

EDIT:代わりにこのスニペットを使用したより は;)

$your_username = $_POST['your_username']; 

     //creating the query 
     $stmt = $conn->prepare("SELECT id,your_username,your_mobile,referral_name,referral_contact,referral_email, 
loan_type,loan_amount FROM mytable WHERE your_username = ? "); 
    $stmt->bind_param("s",$your_username); 
+0

申し訳ありません私はあなたが見てくださいすることができ、間違ったコードを貼り付けます。私は質問を編集した – FargoArgoCargo