0

我有一个从特定表中选择 * 值的函数,我需要配置如果我在参数中传递 * 则它会选择所有或选定的参数。

我的功能如下:

  public function select($tablename){
          $select = mysql_query("SELECT * FROM $tablename");
          if(!$select){
              echo "cant select table mane";
              }
          while ($row = mysql_fetch_array($select)){

              print_r($row);
              }
          }      

如何传递动态列名代替 *

4

6 回答 6

1

这更容易:

public function select( $tablename , $columnName = array() ){
   $columnName = $columnName ? implode( ',' , $columnName ) : '*';
   $select     = mysql_query( 'SELECT ' . $columnName . ' FROM ' . $tableName );
   if(!$select){
      echo "cant select table mane";
   }
   while ($row = mysql_fetch_array($select)){
      print_r($row);
   }
}
于 2013-03-22T12:29:46.737 回答
1
public function select($tablename,$column=NULL){
      if($column == null) {
          $select = mysql_query("SELECT *  FROM $tablename");
      } else {
          $select = mysql_query("SELECT ".$column."  FROM $tablename");
      }

select("abcd_table","id,name"); 使用OR来调用它select("abcd_table");

亚历克斯

Avoid mysql, it is deprecated. Use mysqli or PDO instead
于 2013-03-22T12:19:20.580 回答
1

在您的函数中再添加一个参数$columnname类型数组。

   public function select($tablename,$columnname = array()){
      if(count($columnname)){
         $columnname = implode(",",$columnname);
         $select = mysql_query("SELECT {$columnname} FROM $tablename");
      }  
      else{
        $select = mysql_query("SELECT * FROM $tablename");
      }
      #code continue
   }

调用将如下所示

要选择所有字段,

select($tablename);

要选择一些字段,

select($tablename,array('field','field2'));

注意:请不要mysql_*在新代码中使用函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2013-03-22T12:20:41.837 回答
0

试试这个修改后的功能

public function select($tablename,$array_fields){
    if(!empty($array_fields)){
      $fieldstr = implode(',',$array_fields);
      $fieldstr = trim($fieldstr,',');
    }else{
        $fieldstr = '*';
    }
      $select = mysql_query("SELECT $fieldstr FROM $tablename");
      if(!$select){
          echo "cant select table mane";
          }
      while ($row = mysql_fetch_array($select)){

          print_r($row);
          }

}

于 2013-03-22T12:26:25.553 回答
0
 public function select($tablename,$column="*"){

          $select = mysql_query("SELECT $column FROM $tablename");
          if(!$select){
              echo "cant select table mane";
              }
          while ($row = mysql_fetch_array($select)){

              print_r($row);
              }
          }      

叫得像select("table","*") or 叫得像select("table","col1,col2")

于 2013-03-22T12:18:16.513 回答
0
public function select($tablename, $selectrow){
          $select = mysql_query("SELECT $selectrow FROM $tablename");
          if(!$select){
              echo "cant select table mane";
          }
          while ($row = mysql_fetch_array($select)){
              print_r($row);
          }
}      
于 2013-03-22T12:19:44.880 回答