コードをコピー
コードは次のとおりです:
$temp = array("one" => 1, "two" => 2);
echo "最初の要素は {$temp["one"]} です。";
3. 連想配列を使用してクエリ結果にアクセスします以下を参照 例:
コードをコピー
コードは次のとおりです:
$connection = mysql_connect("localhost", "アルバート", "シー");
mysql_select_db("ワインストア", $connection);
$result = mysql_query("顧客からの顧客ID、姓、
名", $connection); mysql_fetch_array($result)) { echo "ID:t{$row["cust_id "]}n"; echo "姓{$row["surname"]}n"; $row["firstname"]}nn"; }
?>
関数 mysql_fetch_array() はクエリ結果の行を配列に入れます。この配列は 2 つの方法で同時に参照できます。たとえば、cust_id は次の 2 つの方法で同時に参照できます: $row[" cust_id"] または $row[0]。明らかに、前者の方が後者よりもはるかに読みやすいです。
複数テーブルの結合クエリで、2 つの列が同じ名前を持つ場合は、エイリアスを使用してそれらを分離することをお勧めします:
SELECT winery.name AS wname、
region.name AS rname、
FROM winery、region
WHERE winery。領域 ID = 領域.領域 ID ;
列名の参照は $row["wname"] と $row["rname"] です。
テーブル名と列名を指定する場合は、列名のみを引用符で囲みます:
SELECT winery.region_id
FROM winery
列名の参照は: $row["region_id"] です。
集計関数の参照は参照名です:
SELECT count(*)
FROM customer;
列名の参照は: $row["count(*)"] です。
4. 一般的な PHP のバグに注意してください
一般的な PHP デバッグの問題は次のとおりです:
もっと多くのことが期待されるのに Web ブラウザによってページが表示されない
「ドキュメントにデータが含まれていません」というポップアップ ダイアログが表示される
ページの一部より多くのことが期待される場合
これらの状況の原因のほとんどは、スクリプトのロジックではなく、HTML のバグ、またはスクリプトによって生成された HTML のバグです。たとえば、、、 などの終了タグがない場合、ページを更新できません。この問題の解決策は、HTML のソース コードを確認することです。
理由が見つからない複雑なページの場合は、W3C ページ検証プログラム http://validator.w3.org/ を通じて分析できます。
変数が定義されていなかったり、変数の定義が間違っていたりするとプログラムがおかしくなります。たとえば、次の無限ループ:
コードをコピー コードは次のとおりです:
for($counter=0; $counter<10; $Counter++)
myFunction();
?>
変数 $Counter は増加していますが、$counter は常に 10 未満です。このタイプのエラーは、通常、より高いエラー報告レベルを設定することで見つけることができます:
コードをコピー コードは次のとおりです:
error_reporting(E_ALL);
for($counter= 0; $counter<10; $Counter++)
myFunction()>
多くの Web データベース アプリケーションでは、一部の関数で接続をクリックし、現在のページに留まり続ける、この種の作業を私は「単一コンポーネント クエリ」と呼んでいます。
以下はcalling.phpというスクリプトです:
コードをコピーします
コードは次のとおりです:
呼び出しページの例 ここをクリックしてください! ユーザーが上のリンクをクリックすると、 action.php が呼び出されます。以下は、action.php のソース コードです:
コードをコピーします
コードは次のとおりです:
// データベース関数
// リダイレクト header("Location: $HTTP_REFERER "); exit; ?>
注意が必要なよくある間違いが 2 つあります:
header() 関数を呼び出した後、スクリプトを停止するには exit ステートメントを含める必要があります。そうしないと、後続のスクリプトが出力される可能性があります。ヘッダーが送信される前に。
header() 関数の一般的なエラーは次のとおりです:
警告: ヘッダー情報を追加できません - ヘッダーはすでに送信されました...
header() 関数は HTML 出力の前にのみ呼び出すことができるため、ヘッダー内の空スペースの可能性を確認する必要があります。 PHPの行、スペースなどの前。
6. リロードの問題とその解決策
以前、PHP プログラムを書いていたとき、ページが更新されるとデータベースがもう一度処理するという状況によく遭遇しました。
addcust.php を見てみましょう:
コードをコピーします
コードは次のとおりです:
$query = "顧客に挿入
姓 = $姓、
名 = $firstname";
$connection = mysql_connect("localhost", "fred", "shh"); "winestore", $connection);
$result = mysql_query($query, $connection);
"-//W3C//DTD HTML 4.0 移行版//EN" http://www.w3.org/TR/html4/loose.dtd" >
顧客挿入
< body>
顧客を挿入しました
次のリンクを使用するとします。 com/addcust. ... &firstname=Fred
このリクエストが 1 回だけ送信される場合は問題ありませんが、複数回更新すると複数のレコードが挿入されます。
この問題は、header() 関数を通じて解決できます: addcust.php の新しいバージョンは次のとおりです:
コードをコピーします
コードは次のとおりです:
$query = "顧客に挿入 SET 姓 = $surname, 名 = $firstname";
$connection = mysql_connect("localhost", "fred", "shh");
mysql_select_db("winestore", $connection);
$result = mysql_query($query, $ connection);
header("Location: cust_receipt.php");
このスクリプトはブラウザを新しいページにリダイレクトします: cust_receipt.php:コードをコピーします
コードは次のとおりです:
< ;html>
顧客挿入 顧客を挿入しました。 < ;/body> html>
この方法では、元のページが更新され続けても副作用は発生しません。
7. ロックメカニズムを上手に使ってアプリケーションのパフォーマンスを向上させます
レポートを緊急に実行したい場合は、テーブルに書き込みロックを追加して、他のユーザーが読み書きできないようにして、レポートの処理速度を向上させることができます。テーブル。
8. mysql_unbuffered_query() を使用して高速スクリプトを開発します
この関数は、mysql_query() 関数の代わりに使用できます。主な違いは、mysql_unbuffered_query() がクエリの実行後、データベースを待機したりロックしたりせずにすぐに戻ることです。
しかし、出力結果セットのサイズが不明であるため、返された行数を mysql_num_rows() 関数でチェックすることはできません。
http://www.bkjia.com/PHPjc/322576.htmlwww.bkjia.com
true
http://www.bkjia.com/PHPjc/322576.html
技術記事
1. PHP での配列の使用 データベースを操作する場合、連想インデックス付き配列を使用すると非常に役立ちます。デジタル形式での基本的な配列の走査を見てみましょう:...
。