2011-12-08 7 views
0
<?php 

header('Cache-Control: no-cache, must-revalidate'); 
header('Content-type: application/json'); 

if((@$_GET['query'])) 
{ 

$query = @$_GET['query']; 

$mysqli = new mysqli('localhost', 'johan', 'johan', 'fysiosteo'); 
$myArray = array(); 
if ($result = $mysqli->query("SELECT id, post_name FROM wp_posts WHERE post_type = 'page' AND post_content like '%" . $query . "%'")) { 
    $tempArray = array(); 
    while($row = $result->fetch_object()) { 
      $tempArray = $row; 
      array_push($myArray, $tempArray); 
     } 
    echo json_encode($myArray); 
} 

$result->close(); 
$mysqli->close(); 
} 

?> 

ここに私のservice.phpファイルがあります。 phpmyadminでこのクエリを実行すると、私は必要な結果を得ます。しかし、私は別のページからajax呼び出しを使用して呼び出すと、ページのコンテンツpost_contentは、ページ上のテキストの代わりにnull値を取得します。 htmlタグのためですか?それとも何が原因でしょうか?おかげajax検索用のwp_postsをシリアライズすると、post_content = null

+1

これは非常に危険な構文です。誰でも任意のSQLを挿入してデータベース内で実行できます。また、クエリ変数をエコーするとどうなりますか?何かが現れる? – VNO

+0

あなたのことを指摘してくれてありがとうございますが、彼のために詳しく説明するのは良くありません。あなたの車を整備士に服用させ、彼にちょうど言って、「あなたの車は完全にうんざりしています。 –

+0

@Vibhu私はhttp://php.net/manual/en/mysqli.real-escape-string.phpについて知っていますが、私はその部分にまだ行きませんでした。はい、クエリ変数があります。 – Johan

答えて

0

問題はエンコードに関連していました。 UTF8はそれを解決しました。

0

あなたは現在のオブジェクトを取得している

while($row = mysql_fetch_array($result) { 

を試してみてください。

+0

'警告:mysql_fetch_array()は、パラメータ1がリソース、オブジェクトが指定されていることを期待しています。 – Johan

関連する問題