PHP のその他のメモ

WBOY
WBOYオリジナル
2016-06-23 14:36:27888ブラウズ

Mysql の一般的なコマンド
1. mysql -uroot -padmin -- ログイン、ユーザー名: root、パスワード: admin (自分で設定)
2. データベースを表示; データベースを表示

PHP プログラムがデータベースにアクセスします

PHP プログラムがストアド プロシージャを使用することは完全に可能です。ストアド プロシージャを使用する方が保守が容易であると考える人もいます。しかし、この問題については、DBA と開発者がより協力する必要があると思います。それらのいずれかが変更されると、明らかに保守が困難になります。
ただし、ストアド プロシージャを使用することには、速度と効率という 2 つの最も明らかな利点があります。
ストアド プロシージャを使用した方が明らかに高速です。
効率の観点から、アプリケーションが一連の SQL 操作を一度に実行する必要がある場合、PHP と ORACLE の間を行き来する必要があります。ラウンド数を減らすために、アプリケーションをデータベースに直接配置する方が良いでしょう。出張が可能になり、効率が向上します。
ただし、インターネット アプリケーションでは速度が非常に重要であるため、ストアド プロシージャを使用する必要があります。
私も少し前に PHP を使用してストアド プロシージャを呼び出し、次の例を実行しました。

コード:---------------------------------------------- -- ----------------------------------

//TEST テーブルを作成する
CREATE TABLE TEST (
ID ) NUMBER (16) NOT NULL,
NAME VARCHAR2(30) NOT NULL,

//データを挿入します
INSERT INTO TEST VALUES (5, 'PHP_BOOK');
//ストアド プロシージャを作成します
CREATE OR REPLACE PROCEDURE PROC_TEST (
p_id IN OUT NUMBER,
p_name OUT VARCHAR2
) AS
BEGIN
SELECT NAME INTO p_name
FROM TEST
WHERE ID = 5;テスト
/

---------------------------------------------------- ---- ------------------------

PHP コード:--------------- --- --------------------------------------------------- --- -----------


//データベース接続を確立します
$user = "scott"; conn_str = "tnsname" //接続文字列 (cstr: Connection_STRing) )
$remote = true //リモート接続
if ($remote) {
$conn = OCILogon($user, $password, $conn_str)
}
else {
$conn = OCILogon($user, $password); ;
}

//バインディングを設定する
$id = 5; //バインディング用の php 変数名を準備する

/**ストアド プロシージャを呼び出す SQL ステートメント (sql_sp: SQL_StoreProcedure)
* 構文:
* * BEGIN ストアド プロシージャ名 ([[:] パラメータ])
* コロンを追加すると、パラメータが位置であることを示します
**/
$sql_sp = "BEGIN PROC_TEST(:id, :name); END ;";

//解析
$stmt = OCIParse ($conn, $sql_sp);

//バインディングを実行
OCIBindByName($stmt, ":id", $id, 16); //パラメータの説明: Bind PHP 変数 $id を location:id に設定し、固定バインド長を 16 ビットに設定します
OCIBindByName($stmt, ":name", $name, 30); //Result
echo "name is : $name
?>


Web サイトの作成に慣れている人にとって、Web サイトを動的にしたい場合は、データベースをサポートし、特定のスクリプトを使用してデータベースからデータを抽出したり、データベースにデータを追加したり、データを削除したりする必要があります。ここでは例を使用して、php を使用してデータベースに接続する方法を説明します。

データベースの名前は txl です。データベースには、personal_info という 5 つのフィールドがあります
pi_id pi_name pi_tel pi_qq pi_email

まず、データベース:
データベース txl を作成します
次に、テーブルを作成します
CREATE TABLE `personal_info` (
`pi_id` bigint(20) NOT NULL auto_increment,
`pi_name` varchar(50) NOT NULL,
`pi_tel` varchar(15) デフォルト NULL,
`pi_qq` varchar(15) デフォルト NULL,
`pi_email` varchar( 50) デフォルト NULL,
PRIMARY KEY (`pi_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4;
上記の SQL ステートメントは非常に単純で、単語を読めばその意味が推測できます。
以下はデータベースに接続され、テーブルpersonal_info のすべてのフィールド情報を表示します。
// connsql.php
$mysql_server_name="localhost" //データベースサーバー名
$mysql_username="root"; // 接続データベースのユーザー名
$mysql_password="root" // データベースに接続するためのパスワード
$mysql_database="lxr"; // データベース名

// データベースに接続します
$conn=mysql_connect($mysql_server_name, $mysql_username,
$ mysql_password);

// テーブルから情報を抽出する SQL ステートメント
$strsql="select * frompersonal_info"
// SQL クエリを実行します
$result=mysql_db_query($mysql) _database、$strsql、$ conn);
// クエリ結果を取得する
$row=mysql_fetch_row($result);
echo '< ">';

// フィールド名を表示
echo "nn";
for ($ i=0; $i {
echo ''
mysql_field_name($result, $i); "n";
}
echo "n";
// 最初のレコードを検索します
mysql_data_seek($result, 0); // レコードをループします。
while ($row=mysql_fetch_row($result))
{
echo "n " ; For ($ i = 0; $ i & lt; mysql_num_fields ($ result); $ i ++) {
echo '& td bgcolor = "#00ff00" & gt;';
echo "$ row [$ i]" "" " ;; Echo '& lt;/td & gt;';}}
echo "& lt; ;/troc & gt; n";}}




"& lt;/table & gt; n";
echo "& lt;/font & gt;"
// // リソースを解放する
mysql_free_result ($result);
// 接続を閉じます
mysql_close();
?>

結果は次のとおりです:
pi_id pi_name pi_tel pi_qq pi_email
1 Zhangsan
13911111111 642864125 zhangsan@126.com
2 リシ
13122222222 63958741 lisi@163.com
3 Wangwu
13833333333 912345678 wangwu@sohu.com

いわゆる「何も変わらない」「Li Qizong」、操作がどれほど複雑であっても、それは上記に基づいており、上記に基づいています基本的な手順は必須ですが、必要に応じて関連マニュアルを確認することで解決できます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:20080511次の記事:20080511