0

更新された問題: print_r($_POST);ボックスに何かを入力した後のphpファイルの出力。

Array
(
    [q] => running
)

json_encode($jsonArray);ただし、印刷は印刷です[]

バインドされたパラメータについてインタレストテーブルをクエリするphp

    $interestValue = $_POST['interestVal']; //////
    $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );  
    $sth = $dbh->prepare(
'SELECT interestID, interestVal FROM Interest WHERE interestVal = ?');
    $sth->bindParam(1, $interestValue);
    $sth->execute();
    $jsonArray = array();
    while ($result = $sth->fetch(PDO::FETCH_ASSOC)) {
     $jsonArray[] = array(
      'ID' => $result['interestID'], 
          'Value' => $result['interestVal']); 
    }

    print_r($_POST);

    print json_encode($jsonArray); // json encode that array 

HTML

<input id="interest" name="interest" value="What are your interests?" />

JS

//Get interests
        $(document).ready(function() {
            $("input#interest").tokenInput("../../src/php/registration/interest/getInterest.php");
        });

フレームワークのJS(http://loopj.com/jquery-tokeninput/)

(function ($) {
// Default settings
var DEFAULT_SETTINGS = {
    // Search settings
    method: "POST",
    contentType: "json",
    queryParam: "interestVal",
    searchDelay: 300,
    minChars: 1,
    propertyToSearch: "name",
    jsonContainer: null,

    // Display settings
    hintText: "Type in a search term",
    noResultsText: "No results",
    searchingText: "Searching...",
    deleteText: "&times;",
    animateDropdown: true,

    // Tokenization settings
    tokenLimit: null,
    tokenDelimiter: ",",
    preventDuplicates: false,

    // Output settings
    tokenValue: "name", // orig "id"
}

この配列が空なのはなぜですか?

4

1 に答える 1

1

プリペアドステートメントでは使用しないでくださいmysql_real_escape_string。バインディングパラメータはSQLコードからユーザーデータを取得するため、SQLインジェクションの脆弱性はありません。さらに重要なmysql_real_escape_stringことは、DBに接続した後でのみ機能し、値をに変換する前ではありませんfalse

于 2012-04-13T01:15:34.777 に答える