duandu5846 2014-03-08 10:39
浏览 24

有什么方法可以在PHP中运行MySQL查询并将结果输出到更少空间的数组中?

I'm getting really tired of writing:

$rows = array();
$result = $db->query("SELECT * FROM `table` WHERE `field`='".$information."'");
while($row = $result){
    $rows[] = $row;
}

I tried a function, but it was kinda of messy feeling changing the input to field inputs. I thought maybe this or something similar would help:

$rows = array(); 
while($row = ($db->query("SELECT * FROM `table` WHERE `field`='".$information."'"))->fetch_assoc()){
    $rows[] = $row;
}

but I get unexpected T_OBJECT_OPERATOR. I'm still on the line about using a function. Maybe there's a more efficient way of writing one. This is how I tried writing a function:

$array = SELECT ($db,$toSelect,$table,$where);

It still seems cumbersome, however. I would like something like $array = $db->("MYSQL");

  • 写回答

1条回答 默认 最新

  • duanre4421 2014-03-08 10:54
    关注
    • The simplest solution is to write a function, which expects a database handle and a string query parameter, and returns all the rows.

      $rows = fetch_all($db, "SELECT ...");

    • A bit more advanced is to write your own database class which wraps the database handle and adds such functionality.

      $rows = $mydb->fetch_all("SELECT ...");

    • If you don't want to reinvent the wheel, simply use an existing ORM / PHP database library which does all this (and more) for you.

      $db ->select('*') ->from('table') ->where('field', $information);

    Note: http://www.php.net/manual/en/security.database.sql-injection.php - the third solution automatically solves this problem.

    评论

报告相同问题?

悬赏问题

  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计