-2

まず、タイトルがわかりにくかったらすみません。もっと明確に説明する方法がわかりませんでした。

したがって、アイデアは、クラスを使用して (私は PHP を使用していますが、より一般的なアイデアです)、SQL 機能を表しますが、クラス メソッドを使用することです。たとえば、次の SQL ステートメントを想像してください。

SELECT p_id, p_name FROM tbl_products

それは次のようなものかもしれません:

$API->Data->Action = 'select';
$API->Data->Fields = 'p_id, p_name';    // comma separated
$API->Data->Table = 'tbl_products';

そして、次のように再構築できます。

$Query = $API->Data->Action . ' ' . $API->Data->Fields . ' FROM ' . 
         $API->Data->Table . ' WHERE available = 1';

一部のAPIプログラマーに提供する必要がありますが、短く、シンプルで使いやすいものになる可能性があります。独自の SQL ステートメントを実行したい場合は、その機能も備えています。

質問:

関数名として使用するキーワードは、初心者とプロのプログラマーの両方にとって明らかですが、SQL 標準のキーワードとはあまり似ていませんか?

たとえば、代わりにandLIMIT 0, 15のようなものを使用して、それをオフセットと組み合わせることができます。しかし、 やのようなものはどうでしょうか? 、および十分に明確ですが、SQLについて何も知らないと言う人にとっては、少し混乱する可能性があります.FirstLastASCDESCINSERTUPDATEDELETESELECT

  • あなたの一般的な考えを教えてください
  • 希望の「キーワード」も教えてください

なんとなく深刻な質問に見えないかもしれませんが、あなたの助けとアイデアに本当に感謝しています! 私にとって、それらは単なる「キーワード」以上のものであり、それが私があなたのアイデアを求めている理由です! 皆さん、答えてくれてありがとう!

解決:

私はついにこれを思いついた:

// Pure SQL Query
$API->Database->Query('SQL HERE');
$API->Database->Result;    // It contains the results as an Object

// For 'SELECT' you don't need any command, just Process() it ...
$API->Data->Table = 'Products';
$API->Data->Fields = 'p_id, p_name';
$API->Data->Offset = 'last';
$API->Data->Limit = 15;
$API->Data->Process();

// 'UPDATE', need passing some variables like above plus something like 'WHERE'
$API->Data->Save();

// 'INSERT'
$API->Data->Add();

// Save() without 'WHERE' would insert also

// 'DELETE'
$API->Data->Delete();

まだまだ不明な点もあると思いますので、どんどんアイデアを出してください!:)

4

1 に答える 1

1

次のようなものを構築できます。

class DBAdapter extends PDO
{
  public function __construct( array $params)
  {
     // construct the connection
  }

  public function Select ($table)
  {
    // do stuff for a table select
    return $this;
  }

  public function Count ($table)
  {
    // do stuff for a table count
    return $this;
  }


  public function Where ($condition)
  {
    // do stuff for a where
    return $this;
  }

  public function Execute ()
  {
    // execute stuff
    return $result;
  }
}

そして、次のように使用します。

$db = new DBAdapter(array('host' => 'localhost'));
$results = $db->Select('mytable')->Where('id > 2')->Execute();
于 2012-09-19T10:15:06.870 に答える