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

$columnname関数にパラメーター型配列をもう 1 つ追加します。

   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_*。それらはもはや保守されておらず、公式に非推奨です赤いボックスが見えますか? 代わりにプリペアド ステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事はどちらを使用するかを決めるのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

于 2013-03-22T12:20:41.837 に答える
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 に答える
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,$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, $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 に答える