お世話になります。
PHPからMySQLに接続し指定条件に合致するデータを取得する処理を作成しています。
req_sqlに設定した値をSQLの条件文として設定したいのですがエラーとなってしまいます。
'(シングルクォート)がうまく反映されていない為失敗しているようなのですが
文字のエスケープ方法を調べて試みてもうまくいきませんでした。
正しい設定方法をご教示ください。
初歩的な質問すぎるかもしれませんが、よろしくお願いします。
JavaScript
1//SQL条件設定用関数 2function setList(){ 3 //colmun1が'aaa'のものを指定して抽出する 4 var req_sql = "WHERE (colmn1 = 'aaa')"; 5 getList(req_sql).done(function (result) { 6 alert(result); 7 }).fail(function (result) { 8 エラー処理; 9 }); 10} 11 12//PHP実行処理 13function getList(req) { 14 return $.ajax({ 15 type: "POST", 16 url: 'getlist.php', 17 data: { data_table: 'table1', data_column: 'column1', data_condition: req }, 18 dataType: "json" 19 }) 20}
PHP
1//***接続宣言省略*** 2//変数の設定 3$requesttable = mysqli_real_escape_string($con, trim($_POST['data_table'])); 4$requestcolumn = mysqli_real_escape_string($con, trim($_POST['data_column'])); 5$requestcondition = mysqli_real_escape_string($con, trim($_POST['data_condition'])); 6 7//SQL条件文の設定・データ取得 8$s_sql = sprintf("SELECT %1s FROM %2s %3s", $requestcolumn, $requesttable, $requestcondition); 9$s_res = mysqli_query($con,$s_sql); 10$s_row = mysqli_num_rows($s_res); 11 12//取得情報を配列に格納 13if(mysqli_num_rows($s_res) >= 1){ 14 while($s_row = mysqli_fetch_assoc($s_res)){ $array[] = $s_row[$_POST['data_column']]; } 15} else { 16 例外処理; 17} 18 19//取得した結果を返却 20echo json_encode($array);
回答3件
あなたの回答
tips
プレビュー