2

こんにちは、私は「bind_result」、「LIKE CONCAT」を使用して、2つのクエリ文字列による全文検索とページネーションに到達します。

しかし、bind_resultメソッドをfetch_assocに変更するにはどうすればよいですか?

<?php
$mysqli = new mysqli("localhost", "", "", "test");


$query_string="hello"; //keywords

$sqltxt="SELECT * FROM `table` WHERE text1 LIKE CONCAT('%', ?, '%')";


//first query : for get the total number of data
$stmt = $mysqli->prepare($sqltxt);
$stmt->bind_param("s",$query_string);
$stmt->execute();
$stmt->store_result();
$total =$stmt->num_rows;

$lastpage = ceil($total/20);//obtain the last page

$page=$_GET["page"];
$startpoint = ($page * 20) - 20;

//second query : for get the true data
$stmt = $mysqli->prepare($sqltxt ." LIMIT {$startpoint}, 20");
$stmt->bind_param("s",$query_string);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id,$title,$tel); //<= hits!! I want to using fetch_assoc methods

while($stmt->fetch()){ //<= hits!! I want to using fetch_assoc methods


echo $id;
echo $atitle;
echo $tel;

}


?>

ありがとう!

4

1 に答える 1

1

mysqlドキュメントの例から:

<?php

// ... document's example code:

/* bind parameters for markers */
$stmt->bind_param("s", $city);

/* execute query */
$stmt->execute();

/* instead of bind_result: */
$result = $stmt->get_result(); //with get_result ;)

/* now you can fetch the results into an array - NICE */
while ($myrow = $result->fetch_assoc()) { //now you can use fetch_assoc

    // use your $myrow array as you would with any other fetch
    printf("%s is in district %s\n", $city, $myrow['district']);

}
?>

-----------編集済み----------------------

この方法のユーザーノートをお読みください。

http://php.net/manual/en/mysqli-stmt.get-result.php

mysqlndドライバーが必要です...Webスペースにインストールされていない場合は、BIND_RESULT&FETCHを使用する必要があります。

http://www.php.net/manual/en/mysqli-stmt.bind-result.php

http://www.php.net/manual/en/mysqli-stmt.fetch.php

機能MySQLネイティブドライバーのみ

mysqlndでのみ使用可能:http ://www.php.net/manual/en/book.mysqlnd.php

注:mysqli_stmt :: get_result()は、PHPv5.3.0以降でのみ使用できます。

別の選択肢を探すつもりです。

Saludos;)

于 2013-03-27T13:16:02.567 に答える