ホームページ >バックエンド開発 >PHPチュートリアル >Mac環境下でPHPでmysqlデータベースを操作する方法を共有_PHPチュートリアル
今日は、Mac上にPHP環境をセットアップしました。必要な友人の参考のために、PHPを使用してmysqlデータベースを操作する方法を共有します。それ。
Macローカル環境のセットアップ
Macシステムでは、MAMP Proソフトウェアを使用してローカルサーバーを構築できます。このソフトウェアをインストールすると、Web サイトのディレクトリは /Applications/MAMP/htdocs フォルダーに作成され、そのフォルダーにファイルを置くだけで http://localhost:8888 からアクセスできるようになります。または、下線の下の赤い色をクリックします。ボタンを使用してサイトに素早くアクセスできます。
Mac システムに php をインストールするには、たったの 2 行です。
?
1 2 |
醸造タップ ホセゴンザレス/homebrew-php 醸造インストールphp54 |
インストールと設定後、phpstorm を使用して楽しくプログラミングできます。インストールされたphpのパスは/usr/local/bin/php
です基本的なデータベース操作
1) ユーザーの Web ブラウザは HTTP リクエストを発行して、特定の Web ページを要求します。
2) Webサーバーはファイルを取得する.phpリクエストを受け取り、それをPHPエンジンに渡して処理を依頼します。 3) PHP エンジンがスクリプトの解析を開始します。 スクリプトには、データベースに接続するコマンドとクエリを実行するコマンドが含まれています。運命
PHP は MYSQL データベースへの接続を開き、適切なクエリを送信します。
4) MYSQLサーバーはデータベースクエリを受信して処理します。結果を PHP エンジンに返します。
5) 通常、PHP はスクリプトを実行します。これには、クエリ結果を HTML 形式にフォーマットすることが含まれます。らん
そしてHTMLを出力してWebサーバーに返します。
6) WebサーバーはブラウザにHTMLを送信します。
MySQL の一般的なデータ型
整数型:TINYINT、SMALLINT、INT、BIGINT
浮動小数点型:FLOA T、DOUB LE、DECIMAL(M,D)
文字型: CHAR、VARCHAR
日付タイプ: DA TETIME、DA TE、TIMESTA MP
備考の種類: TINYTEXT、TEXT、LONGTEXT
MySQLデータベース操作
1) 現在存在するデータベースを表示します
>SHOWDATABASES;
2) 必要なデータベースを選択します
>ゲストを使用;
3) 現在選択されているデータベースを表示します
>SELECTDATABASE();
4) テーブルのすべての内容を表示します
>SELECT*FROMguest; //最初に SHOWTABLES を通じてテーブルの数を確認できます;
5) データベースに従って中国語のエンコードを設定します
>SET NAMESgbk // 名前を設定 utf8;
6) データベースを作成します
>CREATEDATABASEbook;
7) データベースにテーブルを作成します
>CREATETABLEusers (
>username VARCHAR(20),//NOT NULL 設定を空にすることはできません
>性別 CHAR(1)、
>生年月日 DATETIME);
8) テーブルの構造を表示します
>DESCIRBEusers;
9) テーブルにデータを挿入します
?
1 |
>ユーザー (ユーザー名、性別、誕生日) に挿入 VALUES('jack','male',NOW()); |
PHPはMySQLデータベースに接続します
データベースに接続する
?
1 2 3 4 5 6 7 |
header('CONtent-Type:text/html;charset=utf-8');//ファイルが gbk でエンコードされている場合、文字セットは gbk にも適用されます 。//@ は、何か問題が発生した場合は報告せず、無視することを意味します //パラメータ: サーバーアドレス、ユーザー名、パスワード
echo (!!@mysql_connect('localhost','root','*****'));//1 ?> |
二重感嘆符!!を使用してリソースハンドルをブール値に変換します。それが正しい場合は1を出力し、間違っている場合はエラーメッセージを出力します。 @ 記号を先頭に追加すると、
エラーメッセージは無視され、エラーメッセージは出力されません。
エラー メッセージ処理の場合、mysql_error() 関数を使用してエラー メッセージを出力できます。
mysql_connect('localhost','root','****') または die('データベース接続に失敗しました、エラー メッセージ: '.mysql_error()); // パスワードが間違っている場合のヒント:
データベース接続に失敗しました、エラー メッセージ: ユーザー 'root'@'localhost' のアクセスが拒否されました (パスワードを使用: YES)
die()関数はメッセージを出力し、現在のスクリプトを終了します。この関数は、exit() 関数のエイリアスです。
データベース接続パラメータは定数として保存できるため、任意に変更することができず、より安全です。
?
1 2 3 4 5 6 7 8 9 |
//定数パラメータを定義する define('DB_HOST','localhost'); define('DB_USER','root'); define('DB_PWD','345823');//パスワード $connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) または die('データベース接続に失敗しました、エラー メッセージ: '.mysql_error()); echo $connect;//リソースID #2 ?> |
mysql_connect() のかっこ内の定数は引用符で囲むことができないことに注意してください。引用符で囲まないとエラーが発生します。
指定したデータベースを選択します
?
1 2 3 4 5 6 7 8 9 10 |
define('DB_HOST','localhost'); define('DB_USER','root'); define('DB_PWD','345823');//パスワード define('DB_NAME','trigkit');//phpmyadmin に trigkit という名前のデータベースを作成します //データベースに接続します $connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) または die('データベース接続に失敗しました、エラー メッセージ: '.mysql_error()); //指定されたデータベースを選択します mysql_select_db(DB_NAME,$connect) または die('データベース接続エラー、エラー メッセージ: '.mysql_error());//テーブル名を意図的に間違って書いています、 エラー メッセージが表示されました: データベース接続エラー、エラー メッセージ: 不明なデータベース 'trigkt' ?> |
通常、開いた非永続接続はスクリプトの実行後に自動的に閉じられるため、mysql_close()を使用する必要はありません
mysql_select_db(database,connection): MySQL データベースを選択します
記録を達成しましょう
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
define('DB_HOST','localhost'); define('DB_USER','root'); define('DB_PWD','345823');//パスワード define('DB_NAME','trigkit'); //データベースに接続します $connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) または die('データベース接続に失敗しました、エラー メッセージ: '.mysql_error()); //指定されたデータベースを選択します mysql_select_db(DB_NAME,$connect) または die('データ テーブル接続エラー、エラー メッセージ: '.mysql_error()); //データベースからテーブルデータを抽出します (レコードセットを取得します) $query = "SELECT * FROM class";// trigkit データベースに新しい「テーブル」を作成します $result = mysql_query($query) または die('SQL エラー、エラー メッセージ: '.mysql_error());//意図的に間違ったテーブル名: SQL エラー、エラー メッセージ: テーブル 'trigkit.clas' が存在しません ?> |
mysql_query()関数はMySQLクエリを実行します。
出力データ
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
define('DB_HOST','localhost'); define('DB_USER','root'); define('DB_PWD','345823');//パスワード define('DB_NAME','trigkit'); //データベースに接続します $connect = mysql_connect(DB_HOST,DB_USER,DB_PWD) または die('データベース接続に失敗しました、エラー メッセージ: '.mysql_error()); //指定したデータベースを選択し、文字セットを設定します mysql_select_db(DB_NAME,$connect) または die('データテーブル接続エラー、エラーメッセージ:'.mysql_error()); mysql_query('SET NAMES UTF8') または die('文字セット設定エラー'.mysql_error()); //データベースからテーブルデータを抽出します (レコードセットを取得します) $query = "SELECT * FROM クラス"; $result = mysql_query($query) または die('SQL エラー、エラー メッセージ: '.mysql_error()); print_r(mysql_fetch_array($result,MYSQL_ASSOC)); ?> |
結果セットのリソースを解放します(大きな結果セットを返すときにどれだけのメモリが占有されるかを考慮する場合にのみ呼び出す必要があります。)
?
1 2 3 |
mysql_free_result($result); ?> |
追加、削除、変更、確認
新しいデータ
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
「index.php」が必要; //新しいデータを追加します $query = "クラスに挿入( 名前、 メール、 ポイント、 登録) 価値観 ( 「シャオミン」 「xiaoming@163.com」、 100、 今() )";
@mysql_query($query) または die('エラーを追加:'.mysql_error());
?> |
上記のコードをindex.phpとして保存し、/Applications/MAMP/htdocs/フォルダーに放り込みます。上記のコードをdemo.phpとして保存します
同じディレクトリに置きます。 Mac システムではファイルのパスを取得するのは非常に簡単で、ファイルをターミナルに取り込むだけでパス名が表示されます。
データを変更する
変更するデータの名前は Xiao Ming、ID は 2、彼のポイントスコアは 80 ポイントに変更されると仮定します。 コードは次のとおりです。
?
1 2 3 4 5 6 7
|
「index.php」が必要;
//データを変更する $query = 'UPDATE クラス SET point=80 WHERE id=2'; @mysql_query($query); ?>
|
1 2 3 4 5 6 7 8 9 |
「index.php」が必要;
//データを削除します $query = "クラス WHERE id=2 から削除"; @mysql_query($query);
mysql_close(); ?> |
表示データ
?
1 2 3 4 5 6 7 8 9 10 |
「index.php」が必要;
//データを表示する $query = "クラスから ID、名前、電子メール、regdate を選択"; $result = mysql_query($query) または die('sql ステートメント エラー:'.mysql_error());
print_r(mysql_fetch_array($result)); mysql_close(); ?> |
または指定された値のデータを表示します:
?
1 2 3 |
$data = mysql_fetch_array($result); echo $data['email'];//メールを表示 echo $data['name'];//表示名 |
その他よく使われる機能
コードをコピーします。コードは次のとおりです:
mysql_fetch_lengths(): 結果セット内の各出力の長さを取得します
mysql_field_name(): 結果内の指定されたフィールドのフィールド名を取得します
mysql _fetch_row(): 結果セットから列挙配列として行を取得します
mysql_fetch_assoc(): 結果セットから連想配列として行を取得します
mysql_fetch_array(): 結果セットから連想配列、数値配列、またはその両方として行を取得します
mysql_num_rows(): 結果セット内の行数を取得します
mysql_num_fields(): 結果セット内のフィールドの数を取得します
mysql_get_client_info(): MySQL クライアント情報を取得します
mysql_get_host_info(): MySQLホスト情報を取得します
mysql_get_proto_info(): MySQL プロトコル情報を取得します
mysql_get_server_info(): MySQLサーバー情報を取得します