ある程度までは、PHPは、顧客エンドのデータベースです。
職員が推奨されていないものの、php7.0でもmysqlの拡張子は削除されますが、プロセス指向プログラミングのアイデアについて学ぶことは良いですされています。
コアステップ
データベースへの接続=> SQL文を実行
実際には、拡張子によってMySQLのデータベース操作は、これらの二つのステップを中心に構築されています
詳細な手順
のステップの詳細なフロー図:
照会操作
以下の手順を実現することができるローカルテストデータベースクラステーブルと出力結果を問い合わせます。
<?PHPの ヘッダ( "コンテンツの種類:テキスト/ HTML;文字セット:UTF-8" ); // 最初のステップ:データベースに接続 $ CONN = @ にmysql_connect( 'localhost'の、 'ルート'、 'ルート' ); IF(!$コネチカットを){ ダイ( "接続に失敗し、エラーメッセージ" mysql_error ()) } // :データベースの選択ステップ mysql_select_db( "テスト" ); // 第三段階:文字セット mysql_set_charset(「UTF8を" ); // ステップ4:SQL文の作成 $ sqlを =" `class`」からSELECT *を; // ステップ5:SQL実行 IF($ RES = するmysql_queryを($ SQL )){ ながら($行 = mysql_fetch_assoc($ RES )){ エコー "<PRE>" ; のvar_dump($行); エコー "</ PRE>" ; } }
//ステップ6:閉じる結果セット
mysql_free_result($ RES);
//は、ステップ7:接続解除
にmysql_close($ conn)を、
()するmysql_queryのリソースファイルへのポインタを返すクエリの結果を実施後関数パラメータクエリ操作であれば、
クエリが失敗した場合は、空の文字列を返します。
、関数の先頭をMysql_fetch_ 4の合計、関数の結果を得ることができます:
mysql_fetch_row:インデックス配列の形でリターンクエリ結果
mysql_fetch_assoc:連想配列を返します。
mysql_fetch_array:インデックス付き配列と連想配列を返します。
mysql_fectch_object:オブジェクトのフォームを返します。
一例として、上記のコードに
次のようにMysql_fetch_assoc出力結果は以下のとおりです。
結果の出力は、は、mysql_fetch_rowに変更され
DML操作
クエリは、クエリ結果を取得する必要があり、削除では多少異なるステップ、その動作を変更する必要はありません。
<?PHPの ヘッダ( "コンテンツの種類:テキスト/ HTML;文字セット:UTF-8" ); // 最初のステップ:データベースに接続 $ CONN = @ にmysql_connect( 'localhost'の、 'ルート'、 'ルート' ); IF(!$コネチカットを){ ダイ( "接続に失敗し、エラーメッセージ" mysql_error ()) } // :データベースの選択ステップ mysql_select_db( "テスト" ); // 第三段階:文字セット mysql_set_charset(「UTF8を" ); // ステップ4:SQL文の作成 $ SQLの =" `sname` = WHEREクラスから削除'谢尔顿李库伯'」; // ステップ5:SQLの実行 $ Execの = するmysql_queryを($のSQL ); IF(にmysql_affected_rows($ connが)){ エコー '操作は、記録インパクト成功している' ; } 他{ エコー '操作に失敗した' Mysql_error (); } // リソースを解放する必要はありません //第6のステップ:接続解除 にmysql_close($ CONNを)。
そして、クエリ操作の違い:
1.成功した実装がかなりするmysql_query()関数よりも、にmysql_affected_rows()関数を使用すべきかどうかを決定します。
DML操作は、テーブルが影響を与えるデータであり、
するmysql_query()が正常に実装されてもSQL文で、それは(例えば、存在しない列を削除するように、または元の結果と同様の結果を変更する)、データテーブルに影響を与えないかもしれません
したがって、操作が成功したかどうかを決定するために、データベースに影響を与えたかどうかを決定する必要がある、にmysql_affected_rows()は、この機能を実現することができ、データベースの変更、関数はfalse、トゥーレが返され
自分自身を設定し、結果がないので2は、結果セットをシャットダウンする必要はありません。
3.mysql_query()の戻り値のクエリ操作は、DMLを実行するときに異なっている、彼は正常な実行が真である、ブール値を返し、falseに失敗しました
変更、削除、および挿入操作のみあなたは、SQLステートメントに対応する修正する必要があり、実質的に同じ操作です。
その他のデータベース操作
データテーブルのレコードで動作することに加えて、MySQLデータベースの拡張機能は、多くの操作を行うことができます。show \降下として\変える、など
一例として、データシートの操作を削除するには:DML操作と比較して、唯一のSQLステートメントを変更して、ステートメントが正常に実行できるかどうかを判断する必要があります
<?PHPの ヘッダ( "コンテンツの種類:テキスト/ HTML;文字セット:UTF-8" ); // 最初のステップ:データベースに接続 $ CONN = @ にmysql_connect( 'localhost'の、 'ルート'、 'ルート' ); IF(!$コネチカットを){ ダイ( "接続に失敗し、エラーメッセージ" mysql_error ()) } // :データベースの選択ステップ mysql_select_db( "テスト" ); // 第三段階:文字セット mysql_set_charset(「UTF8を" ); // ステップ4:SQL文の作成 $ sqlを =" deletetest表」をドロップし; // ステップ5:SQL実行 IF(するmysql_query($のSQLを)){ エコー '正常に動作させる' ; } 他{ エコー '操作に失敗しました'。Mysql_error (); } //は、リソースを解放する必要はありません ステップ6:@解放可能な接続 にmysql_close($コネティカット)。