私は以下の3つのコードセットがあり、最初は私のアンドロイド/ iphoneアプリで使用している現在のコードです。最初のPHPコードはデータベースを読み込み、jsonエンコード配列を返します。すべてがうまくいく。私がする必要があるのは、バインド変数を使用してprepareを使用し、bindを使用する以外は同じjson配列を返すことです。行を制限する変数。 2番目はバインド変数を使用しようとしたが、最初のjson配列ではなくデータを返す。 3番目は私の最後の試みでしたが、それは本当の完全な配列を返します。私はバインド変数を追加しようとしていますか?ここで私のmysqlステートメントに
基本的に最初のバインドを使用して同じjsonデータを返すことを許可する必要があります。
おかげ
のerror_log( "\ N \ N ####################### 1 ########## ########### "、3、" master.log ");
$sqlvalue1 = "A";
if ($what_to_do == "select_push_groups")
{
$empty=array();
$sql = "select email from users ";
error_log("\n select_sql: " . $sql ,3,"master.log");
if ($stmt_s = mysqli_prepare($conn, $sql))
{
//mysqli_stmt_bind_param($stmt_s, 's',$sqlvalue1);
mysqli_stmt_execute($stmt_s);
mysqli_stmt_store_result($stmt_s);
}
else
{
error_log("\n select prepare error: " . mysqli_errno($conn) . "-" . mysqli_error($conn) ,3,"android_post_array.log");
$resultArray = array(array("success" => "NO", "message" => mysqli_errno($conn) . " " . mysqli_error($conn) , "count" => 0));
echo json_encode(array('success'=>$resultArray));
//exit;
}
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) == 0)
{
//$resultArray = array(array("success" => "YES", "message" => "empty", "count" => 0));
//echo json_encode(array('success'=>$resultArray));
echo json_encode(array('result'=>$empty));
}
if (mysqli_num_rows($result) > 0)
{
$resultArray = array();
$tempArray = array();
while($row = $result->fetch_object())
{
$tempArray = $row;
//echo $row->id;
array_push($resultArray, $tempArray);
//error_log("\n select tempArray : " . print_R($tempArray,TRUE) ,3,"master.log");
}
error_log("\n select resultArray : " . print_R($resultArray,TRUE) ,3,"master.log");
error_log("\n select json_encode : " . json_encode($resultArray) ,3,"master.log");
//echo json_encode($resultArray);
//echo json_encode(array('result'=>$resultArray));
}
//mysqli_close($conn);
//exit;
}
error_log("\n\n ####################### 2 ################################" ,3,"master.log");
if ($what_to_do == "select_push_groups")
{
$cnt = "";
$empty=array();
$sqlvalue1 = "8";
$sql = "select
id as column1,
code as column2
from push_groups where id > ? ";
if ($stmt_sql = mysqli_prepare($conn, $sql))
{
mysqli_stmt_bind_param($stmt_sql, 's',$sqlvalue1);
mysqli_stmt_execute($stmt_sql);
mysqli_stmt_store_result($stmt_sql);
$cnt = mysqli_stmt_num_rows($stmt_sql);
if ($cnt == 0)
{
error_log("\n cnt=0 : " . $cnt ,3,"master.log");
echo json_encode(array('result'=>$empty));
}
if ($cnt > 0)
{
error_log("\n cnt>0 : " . $cnt ,3,"master.log");
mysqli_stmt_bind_result($stmt_sql, $id, $code);
while (mysqli_stmt_fetch($stmt_sql))
{
error_log("\n cnt>0 : " . $id . " " . $code ,3,"master.log");
}
}
}
else
{
error_log("\n select prepare error: " . mysqli_errno($conn) . "-" . mysqli_error($conn) ,3,"master.log");
$resultArray = array(array("success" => "NO", "message" => mysqli_errno($conn) . " " . mysqli_error($conn) , "count" => 0));
echo json_encode(array('success'=>$resultArray));
exit;
}
}
error_log("\n\n ####################### 3 ################################" ,3,"master.log");
if ($what_to_do == "select_push_groups")
{
$cnt = "";
$empty=array();
$sqlvalue1 = "8";
$sql = "select
id as column1,
code as column2
from push_groups where id > ? ";
if ($stmt_sql = mysqli_prepare($conn, $sql))
{
mysqli_stmt_bind_param($stmt_sql, 's',$sqlvalue1);
mysqli_stmt_execute($stmt_sql);
mysqli_stmt_store_result($stmt_sql);
$cnt = mysqli_stmt_num_rows($stmt_sql);
if ($cnt == 0)
{
error_log("\n cnt=0 : " . $cnt ,3,"master.log");
echo json_encode(array('result'=>$empty));
}
if ($cnt > 0)
{
error_log("\n cnt>0 : " . $cnt ,3,"master.log");
$resultArray = array();
$tempArray = array();
while($row = mysqli_stmt_fetch($stmt_sql))
{
$tempArray = $row;
//echo $row->id;
//error_log("\n row->id : " . $row->id ,3,"master.log");
array_push($resultArray, $tempArray);
error_log("\n select tempArray : " . print_R($tempArray,TRUE) ,3,"master.log");
}
error_log("\n select resultArray : " . print_R($resultArray,TRUE) ,3,"master.log");
error_log("\n select json_encode : " . json_encode($resultArray) ,3,"master.log");
//echo json_encode($resultArray);
echo json_encode(array('result'=>$resultArray));
}
mysqli_close($conn);
exit;
}
else
{
error_log("\n select prepare error: " . mysqli_errno($conn) . "-" . mysqli_error($conn) ,3,"master.log");
$resultArray = array(array("success" => "NO", "message" => mysqli_errno($conn) . " " . mysqli_error($conn) , "count" => 0));
echo json_encode(array('success'=>$resultArray));
exit;
}
}
私は「選択的に」制限したい(キーワードの制限ではなく、セット1のバインド変数を使用してjson配列を返す) –
OPクエリには 'LIMIT 'キーワードでは、OPクエリは' WHERE'節のバインドプレースホルダを使用しています – spencer7593