PHP 開発で多くの PHP プログラマーが使用するデータベースは mysql データベースだと思いますが、なぜ PHP 開発を mysql データベースと組み合わせる必要があるのでしょうか? それでは、見てみましょう。 php と mysql の組み合わせについて、なぜ PHP 開発を mysql と組み合わせる必要があるのかについて詳しく説明します。
おすすめの mysql ビデオ チュートリアル: 「mysql チュートリアル」
phpstudy: このパッケージは最新の Apache+PHP+MySQL+phpMyAdmin を統合しており、一度インストールすれば設定なしで使用でき、非常に便利で使いやすい PHP デバッグ環境です。 php、mysql、appche を個別にダウンロードしてインストールする必要はなくなり、シンプルで便利です。
まず次の phpstudy について理解してください:
上の図の [MySQL Manager] をクリックし、MySQL-Front を選択します
次のインターフェイスが表示されます:
開いた後、正式なデータベース インターフェイスに入ります。 。
以下のmysqlを皆さんに見ていただくだけで、具体的な動作は後ほど説明します。
この部分で私が遭遇した主な問題は、図 5 でローカルホストを開いたときに mysql に接続できないことでした。他に方法がなかったため、phpstudy を再インストールすることにしました。
顧客がオンラインストアで書籍を購入した後、オンラインストアのオーナーがメーカーに商品を受け取りに行き、商品を顧客に発送します。
フローチャートは次のとおりです:
上の図から、顧客と店舗オーナーは直接通信するのではなく、通信サービスを提供する店舗オーナーを通じてデータを交換することがわかります。 php、apache、データベースの関係は、顧客、ショップオーナー、メーカーの関係に似ています。 PHP は何らかのデータを必要とし、apache サーバーにリクエストを直接送信し、データベースは応答データを取り出して apache サーバーに渡します。 サーバーはそれを PHP に送信します。 1. なぜ PHP とデータベースは直接通信できず、Apache を経由する必要があるのですか?
例: PHP とデータベースは、国籍の異なる 2 人の人のようなものです。前者は中国出身で、後者は米国出身です。言語の壁により、ビジネスはおろか、コミュニケーションも困難になります。たまたま、中国語と英語の両方を理解する apache という名前の人がいて、彼は PHP の要件を英語に翻訳し、データベースに対応する商品を取り出して Apache に渡し、Apache はそれを PHP に渡します。
2. なぜ Apache がサーバーとデータベースの両方として機能できないのですか? ?
これは合理的な分業の問題を解決するために設計されています。 Apache をデータベースとマージすると、Apache がストアオーナーとメーカーの両方になることと同じになり、Apache サーバーの負荷が大幅に増加します。データが小さい場合は、Apache が負担できますが、データが大きい場合は、倉庫の輸送と管理作業を Apache が負担する必要があり、最終的な効率が大幅に低下する可能性があります。工場への仕事。
mysqlデータベース
(データベース)
MySQL は、スウェーデンの MySQL AB によって開発され、現在 Oracle が所有するリレーショナル データベース管理システムです。 MySQL はリレーショナル データベース管理システムであり、すべてのデータを 1 つの大きなウェアハウスに置くのではなく、異なるテーブルに保存するため、速度と柔軟性が向上します。 (
MySQL データベースは、商品を分類して別の倉庫に配置することに相当します。各倉庫は小さなデータベースであり、工場は大きなデータベースです。これにより、商品へのアクセスが容易になります。商品が分類されて保管されていない場合、それは明らかです保管効率が大幅に低下します)。 RDBMS (リレーショナル データベース管理システム) の特徴: 1. データはテーブルの形式で表示されます 2. 各行にはさまざまなレコード名が含まれます
4 . 多くの行と列がフォームを形成します
5. 複数のフォームがデータベースを形成します
PHP は、データベースに接続するための mysql_connect() 関数を提供します。この関数には 5 つのパラメータがあり、通常は最初の 3 つだけを使用します。
这里你也许会问,php可以连接数据库那appache干什么去了。 这里说明一下,apache是一个服务器,其构筑了一个php和数据库可以沟通的环境.php和数据库这两个讲不同语言的人打电话, 通过apache这个同声翻译系统进行沟通
。server は接続先のサーバーを指定します。 「hostname:port」などのポート番号、またはローカルホストの「:/path/to/socket」などのローカルソケットへのパスを含めることができます。
PHP ディレクティブ mysql.default_host が定義されていない場合 (デフォルトの場合)、デフォルト値は「localhost:3306」です。
。 ユーザー ユーザー名。デフォルト値は、サーバープロセス所有者のユーザー名です。
. パスワード パスワード。デフォルト値は空のパスワードです。
php mysql_close は、mysql データベースから切断するために使用されます。通常の状況では、スクリプトは実行後に自動的に切断されるため、この文を記述する必要はありません。ただし、mysql_close() は、mysql_pconnect() によって確立された永続的な接続を閉じません。
データベースに接続します:
<?php header("content-type:text/html;charset=utf-8"); $servername = "127.0.0.1";//服务器主机地址 $username = "root";//访问数据库的用户名 $password = "root";//访问数据库的密码 //phpstudy的mysql有一个默认用户名(root)和密码(root) // 创建连接 $conn = mysql_connect($servername, $username,$password); // 检测连接 if (!$conn) { die("Connection failed: " . mysql_connect_error());//die()输出一条消息,然后断开 连接。 } echo "连接成功"; mysql_close($conn);//关闭连接。 ?>
誰もがデータベースにアクセスできるわけではなく、許可されたユーザーのみがデータベースにアクセスできます。次に、mysql-front ツールを使用してユーザーを追加する方法を説明します。
新しいユーザーを追加した後:
新しいユーザーを使用して操作にアクセスします:
<?php header("content-type:text/html;charset=utf-8"); $servername = "127.0.0.1";//服务器主机地址 $username = "sunwukong";//访问数据库的用户名 $password = "jingubang";//访问数据库的密码 //phpstudy的mysql有一个默认用户名(root)和密码(root) // 创建连接 $conn = mysql_connect($servername, $username,$password); // 检测连接 if (!$conn) { die("Connection failed: " . mysql_connect_error());//die()输出一条消息,然后断开连接。 } echo "连接成功"; mysql_close($conn);//关闭连接。 ?>
接続は成功しました。
phpはmysql_query(sql、connection)を使用してデータベースを作成または削除します。 mysql_query() は、確立された接続接続を通じて検索クエリ ステートメント SQL をデータベースに送信します。データベースを読み取った後、対応する操作に応答します。
<?php header("content-type:text/html;charset=utf-8"); $servername = "127.0.0.1";//服务器主机地址 $username = "sunwukong";//访问数据库的用户名 $password = "jingubang";//访问数据库的密码 //phpstudy的mysql有一个默认用户名(root)和密码(root) // 创建连接 $conn = mysql_connect($servername, $username,$password); // 检测连接 if (!$conn) { die("Connection failed: " . mysql_connect_error());//die()输出一条消息,然后断开连接。 } echo "连接成功"; echo "</br>"; $sql = "CREATE DATABASE zhubajie";//CREATE DATABASE是sql语言中创建数据库的语句,这里是一个创建名为“zhubajie” 的数据库的字符串。 $dingpa = mysql_query($sql,$conn);//将$sql查询语句发送给数据库。 if (!$dingpa) { die("创建数据库失败:".mysql_error()); } echo "创建成功"; mysql_close($conn);//关闭连接。 ?>
実行後、
上記のphpファイルを実行すると、下の図に示すエラーが表示されることがあります:
このエラーの理由は、$username = “sunwukong”; を渡したことです。ユーザー名としてデータベースにアクセスする場合、このユーザーは mysql で作成されたときに権限が付与されていませんでした。
データベースの削除も、データベースの作成と同様に mysql_query を通じて実行されます。
CREATE TABLE MyGuests ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, email VARCHAR(50), reg_date TIMESTAMP )
ここで、オブジェクト ブラウザによって表示されるテーブルのヘッダー行に注意してください。これは、データのタイプと他の属性。
上の写真は特定のデータチャートです。 以下の具体的なコードを見てみましょう:
PHP の初期バージョンでは、MySQL 拡張機能を使用します。ただし、この拡張機能は 2012 年に廃止されました。代わりに、mysqli 拡張機能と PDO を使用します。個人的には mysqli 拡張機能を使用します。 mysqli 拡張機能は mysql 拡張機能の拡張機能であり、使用上は 2 つの拡張機能に違いはありませんが、前者の方が後者よりも強力です。以下では、mysqli のプロセス指向エンコード方式 (オブジェクト指向エンコード方式もあります) を使用して mysql を操作します。上記の MySQL 拡張エンコード方式と比較できます。
AUTO INCREMENT - 新しいレコードが追加されるたびに自動的に 1 ずつ増加するように MySQL フィールドの値を設定します。
PRIMARY KEY - データ テーブル内の各レコードの一意の識別子を設定します。 通常、列の PRIMARY KEY は AUTO_INCREMENT とともに使用される ID 値に設定されます。各テーブルには主キー (この列は「zhubajie_t」列) が必要であり、主キーには一意の値が含まれている必要があります。 (よく理解できないかもしれませんが、後ほど説明します)
NOT NULL - 各行には値が含まれている必要があり (空にすることはできません)、NULL 値は許可されません。
デフォルト値 - デフォルト値を設定します
UNSIGNED - 符号なしの数値型、0 および正の数を使用します
上記の 3 つの属性は、指定した列のデータ型と同様に列に追加できます。 (ここでしっかりと理解しましょう)。
実際、男性と女性と同様に、PHP を mysql と組み合わせて開発することが昔から習慣になっています。
関連する推奨事項:
データベースの軍事規制を理解するために MySQL を例として取り上げます
以上がPHP と mysql の組み合わせの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。