ホームページ >バックエンド開発 >PHPチュートリアル >PHP開発でよく使われるデータベース操作方法関数_PHPチュートリアル
今日は、PHPチュートリアル開発でよく使われるデータベースチュートリアルの操作方法関数をまとめて分析しました。興味のある方は参考にしていただければ幸いです。
1.データベース操作
1. MYSQL データを接続します
mysql チュートリアル_connect()
ヒントとメモ
注: mysql_close() を呼び出して事前に明示的に閉じていない限り、スクリプトが終了するとすぐにサーバーへの接続が閉じられます。
ヒント: 永続的な接続を作成するには、mysql_pconnect() 関数を使用します。
例
$con = mysql_connect("localhost","mysql_user","mysql_pwd");
if (!$con)
{
die('接続できませんでした: ' .mysql_error());
}// いくつかのコード...
mysql_close($con);
?>
例:
$db = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD) または die(‘ www.zhutiai.com 接続できません。接続パラメータを確認してください’);
2. データベースを選択します
mysql_select_db()
データベースに接続した後、PHP によってデフォルトで選択されるデータベースが、その後の操作で必要なデータベースではない可能性があります。データベースが正しく選択されていることを確認するために、通常はデータベース選択ステートメントがデータベース接続ステートメントの後に追加されます。
mysql_select_db() 関数は、アクティブな MySQL データベースを設定します。
成功すると、関数は true を返します。失敗した場合は false を返します。
文法
mysql_select_db(データベース,接続)
パラメータの説明
データベースが必要です。選択するデータベースを指定します。
接続はオプションです。 MySQL 接続を指定します。指定しない場合は、以前の接続が使用されます。
例:
mysql_select_db(MYSQL_DB, $db) または die(mysql_error($db));
3. SQL文を実行します
mysql_query()
この関数は、現在アクティブなデータベースに SQL ステートメントを送信し、そのステートメントを実行して結果を返します。
定義と使用法
mysql_query() 関数は MySQL クエリを実行します。
文法
mysql_query(クエリ,接続)
パラメータの説明
クエリが必要です。送信するSQLクエリを指定します。注: クエリ文字列はセミコロンで終わってはいけません。
接続はオプションです。 SQL接続識別子を指定します。指定しない場合は、最後に開かれた接続が使用されます。
説明
開いている接続がない場合、この関数はパラメータなしで mysql_connect() 関数を呼び出し、接続を確立して使用しようとします。
戻り値
mysql_query() は、SELECT、SHOW、EXPLAIN、または DESCRIBE ステートメントの場合のみリソース識別子を返し、クエリが正しく実行されなかった場合は FALSE を返します。
他のタイプの SQL ステートメントの場合、mysql_query() は成功時に TRUE を返し、エラー時に FALSE を返します。
FALSE 以外の戻り値は、クエリが有効であり、サーバーによって実行できることを意味します。これは、影響を受ける行数または返される行数については何も示しません。クエリが正常に実行されたものの、行に影響を与えなかったり、行が返されなかったりする可能性があります。
例:
$query = “SELECT * FROM $table”
$result = mysql_query($query, $db) または die(mysql_error($db));
4. データベースを閉じます
mysql_close()
この関数は、アクティブにする必要がなくなったデータベースを閉じるために使用されますが、通常、PHP はアクティブでなくなったデータベースを自動的に閉じます。
例:
mysql_close($db);
5. SQL結果をリリース
mysql_free_result()
この関数は、mysql_query() の実行結果によって占有されているメモリを解放するために使用されます。この関数は、結果が非常に大きくメモリを占有しすぎる場合を除き、ほとんど呼び出されません。通常、占有されたメモリは PHP スクリプトの実行後に自動的に解放されます。完成しました。
例:
ysql_free_result() 関数は結果メモリを解放します。
成功した場合は true、失敗した場合は false を返します。
文法
mysql_free_result(データ)
パラメータの説明
データが必要です。解放される結果の識別子。結果識別子は、mysql_query() から返された結果です。
ヒントとメモ
注: mysql_free_result() は、非常に大きな結果セットを返すときに使用されるメモリの量を考慮する場合にのみ呼び出す必要があります。スクリプトが終了すると、関連するすべてのメモリが自動的に解放されます。
例
$con = mysql_connect("localhost", "ピーター", "abc123");
if (!$con)
{
die('接続できませんでした: ' .mysql_error());
}$db_selected = mysql_select_db("test_db",$con);
$sql = "SELECT * 人から";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_row($result));//メモリを解放します
mysql_free_result($result);
$sql = "SELECT * 顧客から";
$result = mysql_query($sql,$con);
print_r(mysql_fetch_row($result));mysql_close($con);
?>
2. SQL実行結果操作
1. 実行結果の行を返します
mysql_fetch_row()
この関数を実行すると、結果は次の行を指します。
例:
$row = mysql_fetch_row($result);
処理の実行結果は通常、while ループ内に配置され、各行を走査します
例:
while($row = mysql_fetch_row($result))
{…}
2. mysql_fetch_row() の代替案
mysql_fetch_array()
mysql_fetch_assoc()
mysql_fetch_array() は、キーと値のペアの配列を返します。ここで、キーはクエリされたテーブルの列名です。
mysql_fetch_assoc() が結果を返したら、(オプションのパラメーターに値を割り当てた場合) 最初に結果を並べ替えることができます。これは、mysql_fetch_array()+MYSQL_ASSOC
と同等です。
3. 実行結果のフィールド(列)属性
mysql_fetch_field()
例:
mysql_fetch_field() 関数は、結果セットからカラム情報を取得し、それをオブジェクトとして返します。
mysql_fetch_field() を使用して、クエリ結果からフィールド情報を取得できます。フィールド オフセットが指定されていない場合は、mysql_fetch_field() によってフェッチされていない次のフィールドがフェッチされます。
この関数は、フィールド情報を含むオブジェクトを返します。
返されるオブジェクトのプロパティは次のとおりです:
名前 - 列名
table - 列が配置されているテーブルの名前
max_length - 列の最大長
not_null - 列を NULL にできない場合は 1
Primary_key - 列が主キーの場合は 1
unique_key - 列が一意のキーの場合は 1
multiple_key - 列が一意でないキーの場合は 1
列が数値の場合は、数値 - 1
blob - 列が BLOB の場合は 1
type - 列のタイプ
unsigned - 列が符号なし数値の場合は 1
zerofill - 列がゼロで埋められている場合は 1
文法
mysql_fetch_field(data,field_offset)
パラメータの説明
データが必要です。使用するデータ ポインター。データ ポインタは、mysql_query() から返された結果です。
field_offset は必須です。どのフィールドから開始するかを指定します。 0 は最初のフィールドを示します。設定されていない場合は、次のフィールドが取得されます。
ヒントとメモ
注: この関数によって返されるフィールド名は大文字と小文字が区別されます。
例
$con = mysql_connect("localhost", "hello", "321");mysql_list_tables()
if (!$con)
{
die('接続できませんでした: ' .mysql_error());
}
$db_selected = mysql_select_db("test_db",$con);$sql = "SELECT * 人から";
$result = mysql_query($sql,$con);
while ($property = mysql_fetch_field($result))
{
echo "フィールド名: " . $property->name . "
";
echo "テーブル名: " . $property->table . "
";
echo "デフォルト値: " . $property->def . "
";
echo "最大長: " . $property->max_length . "
";
echo "NULL ではありません: " . $property->not_null . "; echo "主キー: " . $property->primary_key "
";
echo "一意のキー: " . $property->unique_key ."; echo "複数のキー: " . $property->multiple_key "
";
echo "数値フィールド: " . $property->numeric .";
echo "BLOB: " . $property->blob . "
";
echo "フィールド タイプ: " . $property->type . "
";
echo "署名なし: " . $property->unsigned . "
";
echo "ゼロ埋め: " . $property->zerofill . "
"; }
mysql_close($con);
?>
4. データベース内のテーブル名をクエリします
すべてのテーブルを表示したい場合は、mysql_list_tables 使用構文を使用して操作します。 mysql_list_tables 構文
例:
$db_name = MYSQL_DB;
$result = mysql_list_tables($db_name);
while ($row = mysql_fetch_row($result))
{
エコー $row[0];
}
5. データベースのカラム名(フィールド名)をクエリします
esource mysql_list_fields ( string データベース名, 文字列 テーブル名 [, リソース リンク識別子] )
mysql_list_fields() 指定されたテーブル名に関する情報を取得します。パラメータはデータベース名とテーブル名です。 mysql_field_flags()、mysql_field_len()、mysql_field_name()、mysql_field_ty で使用できる結果ポインターを返します
mysql_list_fields()
例:
$fields = mysql_list_fields($db_name,$table);
$columns = mysql_num_fields($fields);
for ($i = 0; $i echo mysql_field_name($fields, $i);
3. その他の機能
1.mysql_num_rows()
mysql_num_rows() 関数は、結果セット内の行数を返します。
文法
mysql_num_rows(データ)
パラメータの説明
データが必要です。結果セット。この結果セットは、mysql_query() の呼び出しから取得されます。
説明
mysql_num_rows() は結果セット内の行数を返します。このコマンドは SELECT ステートメントに対してのみ有効です。 INSERT、UPDATE、または DELETE クエリによって影響を受ける行の数を取得するには、mysql_affected_rows() を使用します。
実行結果の行数を返します。
例:
$num = mysql_num_rows($result);
2.mysql_num_fields()
実行結果の列数(フィールド数)を返します。
例: $num = mysql_num_fields($result);
3.mysql_set_charset()
Webページで漢字を表示する際の文字化けを防ぐために、実行結果のエンコードを設定します。
例:
$query = “$table_name から * を選択”;
mysql_query(‘set names utf8’);
$result = mysql_query($query, $db) または die(mysql_error($db));
注:
1. テキスト内の大文字コードは、define(MYSQL_HOST, ‘localhost’);