本文介绍了php MySqli:如何将fetch重写为fetch_assoc?像CONCAT的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,我使用"bind_result","LIKE CONCAT" ...通过两个查询字符串来实现全文本搜索和分页.

Helo,I using "bind_result", "LIKE CONCAT" ... to reach full text search and pagination by two query string.

但是如何将bind_result方法更改为fetch_assoc?

but how can I change bind_result methods to 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;

}


?>

谢谢!

推荐答案

来自mysql文档示例:

From mysql documentation examples:

<?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']);

}
?>

--------------编辑----------------------

-----------EDITED----------------------

请阅读该方法的用户说明:

Please read the user notes for this method:

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

它需要mysqlnd驱动程序...如果未在您的网站空间中安装它,则必须使用BIND_RESULT&抓!

It requires the mysqlnd driver... if it isn't installed on your webspace you will have to work with BIND_RESULT & FETCH!

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

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

仅适用于MySQL本机驱动程序

Function MySQL Native Driver Only

仅适用于mysqlnd: http://www.php.net/manual /en/book.mysqlnd.php

Available only with mysqlnd: http://www.php.net/manual/en/book.mysqlnd.php

注意:mysqli_stmt :: get_result()仅在PHP v5.3.0或更高版本上可用

Note: mysqli_stmt::get_result() is only available at PHP v5.3.0 or above

我要寻找另一种选择.

Saludos;)

这篇关于php MySqli:如何将fetch重写为fetch_assoc?像CONCAT的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-26 07:39