サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
bituse.info
今回はPDOのprepareメソッドについて説明します。 prepareメソッドはプリペアドステートメントと呼ばれるものを利用するための関数です。 プリペアドステートメントとは、SQL文を最初に用意しておいて、その後はクエリ内のパラメータの値だけを変更してクエリを実行できる機能のことです。 この機能を利用することでクエリの解析やコンパイル等にかかる時間は最初の一回だけで良くなり、より高速に実行することができます。 また、SQLインジェクション対策に必要なパラメータのエスケープ処理も自動で行ってくれるため、安全かつ効率の良い開発が出来ます。 プリペアドステートメントを利用してクエリを実行するには以下の流れで実行していきます。 PDOオブジェクトの作成 ↓ prepareメソッドでSQL文をセット ↓ bindValue or bindParamでパラメータに値をセット ↓ executeメソ
今回はPDOでSelect文を実行してみたいと思います。 以下のようなテーブルを準備してください。 mysql> select * from test; +----+------+------+ | id | num | name | +----+------+------+ | 1 | 1 | AAA | | 2 | 10 | BBB | | 3 | 100 | CCC | | 4 | 1000 | DDD | +----+------+------+ まずはプリペアドステートメントを使って実行してみたいと思います。 プリペアドステートメントがわからない人は「PDO プリペアドステートメント」のページを参照してください。 「PDO プリペアドステートメント」のページでは以下のようにデータを一件だけ取得するコードを書きました。 //PDOオブジェクトの生成 $pdo = new PDO("
今回はC言語のmemcpy関数について説明します。 memcpy関数は指定バイト数分のメモリをコピーする関数です。 ■書式 #include <string.h> void *memcpy(void *buf1, const void *buf2, size_t n); 第一引数にコピー先のメモリブロックのポインタ 第二引数にコピー元のメモリブロックのポインタ 第三引数はコピーサイズ をそれぞれ指定します。 ■サンプルコード #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void) { char buf[] = "ABCDDEFG"; char buf2[] = "123456789"; //3バイトだけコピー memcpy(buf,buf2,3); //表示 printf("コピー後のbuf文字列→
今回はC言語のsrand関数について説明します。 srand関数はrand関数の擬似乱数の発生系列を変更する関数です。 rand関数というのはPC内のある規則にしたがって乱数を発生させています。 ですので、その乱数の元になっている発生系列を変更しないと、実行するたびに同じ数値で乱数が発生します。 これでは完全に乱数とは言えないので、その乱数の元となる発生系列を変更するために、 srand関数を使います。 ■書式 #include <stdlib.h> void srand(unsigned seed); 引数はunsigned型の値を指定します。 逆に言うと、srandに一定の値を指定し続けると同じ繰り返しで乱数を発生させることになります。 ■サンプルコード #include <stdio.h> #include <stdlib.h> #include <string.h> #includ
このサイトはプログラミング初心者の方や、興味を持った方にプログラミングの魅力を分かりやすく説明し、 初心者レベルのスキルを身につける為のプログラミング入門サイトです。 C言語、C++、Java、JavaScript、PHP、MySQL、SQLite、HTML/CSS、WINAPI,DXライブラリ、ゲーム作成入門等を扱っております。 このページはC言語入門ページなります。 その他の言語を学習したい方は、トップページなどから該当の言語を選択して下さい。 また、利用規約の確認もよろしくお願い致します。
今回はスレッド間の排他制御について説明します。 排他制御とはあるデータに複数のスレッドからアクセスがあった場合、 同時に値が書き込み読み込みをされてしまうと、データに問題が発生する可能性があるため、 一方のスレッドが書き込み読み込み中の間は、他のスレッドを待機状態にさせて利用できないようにする仕組みです。 例えばある領域のグローバル変数に対して、複数のスレッドから書き込みがあった時にどうなるでしょう? 想像するだけで怖いですよね。どうなるか分かったもんじゃありません。 そういった状況を回避するために、排他制御の仕組みを使います。 WINAPIではクリティカルセクションという仕組みを使って排他制御を実現できます。 まず、CRITICAL_SECTION構造体という構造体を使い、 クリティカルセクションオブジェクトを作成します。 このオブジェクトを所有しているスレッドだけが処理を実行できるとい
MySQLにおけるLIMIT,OFFSET句の説明です。 SELECT文でデータを取得する際に特に何も指定しないと、 条件式にマッチしたデータが全て取得されます。 ですがこのLIMIT句を使うと取得件数を指定することができます。 SELECT カラム名 FROM テーブル名 LIMIT 取得件数; 例えば、10件だけ取得したい場合は、 SELECT * FROM test LIMIT 10; というようになります。 もうひとつのOFFSET句は取得を開始する位置を指定することができます。 例えばOFFSET句に3を指定した場合は、最初の3件分のデータは取得しないで、 その次のデータから取得するようになります。 書式は以下の通りです。 SELECT カラム名 FROM テーブル名 LIMIT 取得件数 OFFSET 開始位置; //以下の書式も可能 SELECT カラム名 FROM テーブル
今回はstatic指定子について説明します。 static指定子を変数の前に付加すると、次の効果があります。 ・グローバル変数に付けると、他ファイルからアクセスできなくなる ・ローカル変数に付けると、プログラム終了までその変数は消滅しない ・付けた変数はプログラム開始時に0に初期化される グローバル変数は、その宣言にextern指定子をつけると、他ファイルのグローバル変数にアクセスできますが、 このstatic指定子をつけておけば、その変数の有効範囲がそのファイル内だけに限定されるので、 他ファイルから間違って値が変更されることを防ぐことができます。 また、ローカル変数では、その関数の処理が終わると自動的に消滅しますが、 staticの場合は消滅せず、ずっと値が保持されます。 下記のコードを見てください。 #include <stdio.h> //この変数には他ファイルからはアクセスできな
この関数で画像を読み込んだら、歩いてるかのように順番に画像を切り替えて描画するだけです。 イメージとしては、 ある方向キーを押し続けている間はそのカウンタを増やし、 一定回数分だけカウンタが増えたら、画像を次の動作のものに切り替える というようにします。 下記のコードを見てください。 #include "DxLib.h" // プログラムは WinMain から始まります int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE); if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1 ; // エラーが起きたら直ちに終了 } //キー取得用配列 char
MySQLにおけるIN句の説明です。 WHERE句で例えばあるカラムに対して複数条件を指定したい場合、 何個もAND演算子で繋げていくとコードが長くなって見辛くなります。 そこでIN句を使ってリスト形式に比較することができます。 SELECT カラム名 FROM テーブル名 WHERE カラム名 IN(値,値,・・・); testカラムが1、3、5、10のいずれかの値のレコードを取得するSQL文は以下のように書きます。 SELECT * FROM temp WHERE test IN(1,3,5,10); 大分コードがすっきりしましたね。 また、IN句の中には直接SELECT文を指定することもできます。 SELECT * FROM temp WHERE test IN(select id from list); 上記のようなSQL文を実行すると、testカラムがIN句の中のSELECT文で
このサイトはプログラミング初心者の方や、興味を持った方にプログラミングの魅力を分かりやすく説明し、 初心者レベルのスキルを身につける為のプログラミング入門サイトです。 C言語、C++、Java、JavaScript、PHP、MySQL、SQLite、HTML/CSS、WINAPI,DXライブラリ、ゲーム作成入門等を扱っております。 このページはC++入門ページなります。 その他の言語を学習したい方は、トップページなどから該当の言語を選択して下さい。 また、利用規約の確認もよろしくお願い致します。
今回はクラスの継承について説明します。 クラスの継承とは、あるクラスの機能を引き継いで新しいクラスを定義することです。 継承元のクラスを基底クラス、継承先のクラスを派生クラスと言います。 まずは下記のコードを見てください。 <?php class OBJECT{ protected $figure; protected $value; public function func(){ echo "テスト実行<br>"; } public function __construct(){ echo "OBJECTコンストラクタ実行<br>"; $figure=1; $value=2; } public function __destruct(){ echo "OBJECTデストラクタ実行<br>"; } } class GREAT extends OBJECT{ public $result;
当サイトはプログラミング初心者の為の入門サイトです。 上記、または以下のメニューから該当の言語の入門ページへ進むことができます。 念のため、利用規約をお読み下さい。
今回はファイルの読み書きについて説明します。 今までは黒い画面上で文字の出力をしているだけでしたが、 その内容をファイルに書き出したり、またファイルを読み込んで表示することも出来ます。 ファイルにはテキストファイル(文字がかかれたやつ)とバイナリファイル(音楽や動画ファイル)がありますが、 まずはテキストファイルの読み書きから説明します。 まず下記のコードを見てください。 #include <stdlib.h> #include <stdio.h> int main(void) { FILE *fp; fpos_t size; char buf[100]; //test.txtのファイルを作成 fp=fopen("test.txt","w"); //ファイル作成失敗したらNULLポインタが返る if(fp!=NULL){ fprintf(fp,"あいうえお"); fclose(fp); }
今回は難しいとよく言われているポインタについて説明します。 そんなに難しくないので頑張ってついてきてください。 文字列の回で、少しポインタについて触れましたが、 ポインタと言うのは、変数のアドレス(場所)を持つ変数のことです。 例えば、 char test; と変数を宣言したとしましょう? こう宣言するとまずメモリ上にこの変数の領域が確保されます。 そのメモリが確保された場所を示す変数がポインタというわけです。 変数のアドレス場所を表すには、 変数名の頭に&をつけるだけです。 testという変数であれば、&testでその変数のアドレスを表すことが出来ます。 scanf等の色々な関数で、このアドレスを渡すことによって処理が行われます。 また、ポインタ型というのもあります。 この型は、変数のアドレスを保存しとくための型です。 宣言方法はこうです。 char* test; char *test;
このサイトはプログラミング初心者の方や、興味を持った方にプログラミングの魅力を分かりやすく説明し、 初心者レベルのスキルを身につける為のプログラミング入門サイトです。 C言語、C++、Java、JavaScript、PHP、MySQL、SQLite、HTML/CSS、WINAPI,DXライブラリ、ゲーム作成入門等を扱っております。 このページはWINAPI入門ページなります。 その他の言語を学習したい方は、トップページなどから該当の言語を選択して下さい。 また、利用規約の確認もよろしくお願い致します。
まずは、コンテナのvectorから説明します。 vectorを利用するには、vectorというヘッダファイルをインクルードする必要があります。 また、stdという名前空間に属しています。 まず下記のコードを見てください。 #include <vector> using namespace std; void func(vector<int>::iterator begin,vector<int>::iterator end){ for(;begin!=end;++begin){ printf("%d,",*begin); } //改行 printf("\n"); } int main(void) { //vector型のコンテナ宣言 vector<int> test; //vector型のイテレーターを宣言 vector<int>::iterator begin,end; //リストの末尾
今回は関数に配列を渡す方法についてご紹介します。 今まで関数にはただの変数かポインタしか渡していなかったと思いますが、 配列を渡すことも可能です。 以下のコードを見てください。 #include <stdio.h> void func(int [10]); int main(void){ int figure[10]={1,2,3,4,5,6,7,8,9,10}; func(figure); return 0; } void func(int temp[10]){ for(int i=0;i<10;++i){ printf("%d\n",temp[i]); } } これを実行すると、1~10までの数字が縦に表示されます。 最初にfigureという配列を10個宣言して初期値を設定します。 その後、func関数に渡して表示しています。 このことから配列を渡して処理できていることが分かります。
このサイトはゲームプログラミング初心者の方の為の、 ゲームプログラミング入門サイトです。 C言語、C++、DXライブラリを使用して、 ゲームの作り方を解説しております。 このページではシューティングゲームの作り方について 解説しています。 このページで学習するには、 C言語とC++についての知識がある程度必要になります。 心配な方はトップページなどから、該当言語のページを選んで基礎を学んできてください。 また、利用規約の確認もよろしくお願い致します。
このサイトはゲームプログラミング初心者の方の為の、ゲームプログラミング入門サイトです。 C言語、C++、DXライブラリを使用して、ゲームの作り方を解説しております。 このページで学習するには、C言語とC++についての知識がある程度必要になります。 心配な方はトップページなどから該当言語のページを選んで基礎を学んできてください。 また、利用規約の確認もよろしくお願い致します。
このページを最初にブックマークしてみませんか?
『プログラミング入門サイト~bituse~|C言語,C++,HTML,JavaScript,PHP,WINAPI,DXラ...』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く