ホームページ >バックエンド開発 >PHPチュートリアル >メリーメリークリスマス PHP および MySQL 開発のための 8 つのヒント

メリーメリークリスマス PHP および MySQL 開発のための 8 つのヒント

WBOY
WBOYオリジナル
2016-07-29 08:35:551015ブラウズ

1. PHP での配列の使用
データベースを操作する場合、連想インデックス付き配列を使用すると非常に役立ちます。デジタル形式での基本的な配列の走査を見てみましょう:
$temp[0] = "richmond" ;
$temp[1] = "タイガー";
$temp[2] = "プレミア";
for($x=0;$x{
echo $temp[ $x];
echo " ";
?> ただし、コードを保存する別の方法は次のとおりです。 foreach ($temp as $element)
echo "$element ";
?>
foreach はテキストの添字も出力できます:
$temp = array("club" => "richmond",
"ニックネーム" =>"タイガース",
"目標" =>"プレミア");
foreach ($temp as $key => $value)
echo "$key : $value " ;
?>
PHP マニュアルには、配列を操作するための約 50 の関数が説明されています。
2. PHP 文字列に変数を追加します。これは非常に簡単です:
$temp = "hello"
echo "$temp world";>この例にはエラーはありません:
$temp = array("one" => 1, "two" => 2);
// 出力:: 最初の要素は 1 です
echo "最初要素は $temp[one].";
?>
ただし、次の echo ステートメントが二重引用符で囲まれていない場合はエラーが報告されるため、中括弧を使用することをお勧めします:
$ temp = array("one" => 1, "two" => 2);
echo "最初の要素は {$temp["one"]} です。";クエリ結果にアクセスするには
以下を参照 例:
$connection = mysql_connect("localhost", "albert", "shh");
mysql_select_db("winestore", $connection); "顧客から cust_id、姓、
名を選択", $connection);
while ($row = mysql_fetch_array($result))
{
echo "ID:t{$row["cust_id"]}n"; "Surnamet{$row[ "surname"]}n";
echo "First name:t{$row["firstname"]}nn";
?> 関数 mysql_fetch_array() はクエリ結果の行を書き込みます。 2 つの方法で参照できます。たとえば、cust_id は、$row["cust_id"] または $row[0] の 2 つの方法で同時に参照できます。明らかに、前者の方が後者よりもはるかに読みやすいです。
複数テーブルの結合クエリでは、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未満です。このタイプのエラーは、通常、より高いエラー報告レベルを設定することで見つけることができます。 >
5. header() 関数を使用して単一部分のクエリを処理します
多くの Web データベース アプリケーションでは、多くの場合、一部の関数により、ユーザーは接続をクリックした後も現在のページに留まり続けることができます。 -part クエリ」。
次は、calling.php というスクリプトです:
"-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/html4/ Loose.dtd "& gt;
& lt; html & gt;
& lt; head & gt;
& lt; title & gt; ページ呼び出し例 & lt;/title & lt;/head & gt;

& lt; body & gt; & lt; a href = "action.php" > ここをクリックしてください!
action.php が呼び出されます。以下は、action.php のソース コードです。
//Database function
//Redirect
header("Location: $HTTP_REFERER");
exit
?> ここには 2 つのよくある間違いがあります。注意:
header() 関数を呼び出した後、スクリプトを停止する exit ステートメントを含める必要があります。そうしないと、ヘッダーが送信される前に後続のスクリプトが出力される可能性があります。
header() 関数の一般的なエラーは次のとおりです:
警告: ヘッダー情報を追加できません - ヘッダーはすでに送信されました...
header() 関数は HTML 出力の前にのみ呼び出すことができるため、HTML 出力の可能性のある空行を確認する必要があります。 php 、スペースなどの前
6. リロードの問題とその解決策
以前 PHP プログラムを書いていたとき、ページが更新されるとデータベースが再度処理するという状況によく遭遇しました。
addcust.php を見てみましょう:
$query = "INSERT INTO customer
SET姓 = $surname,
firstname = $firstname"
$connection = mysql_connect("localhost", "fred"; , " しー");
mysql_select_db("winestore", $connection);
"-//W3C//DTD HT ML 4.0 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd" >


顧客挿入</title> ; <BR></head> <br><body> <br></html> <br> を使用するとします。 http://www.freelamp.com/addcust. ... &firstname=Fred <br>このリクエストが 1 回だけ送信される場合は問題ありませんが、複数回更新すると複数のレコードが挿入されます。 <br>この問題は、header() 関数を通じて解決できます。 addcust.php の新しいバージョンは次のとおりです: <br><?php <BR>$query = "INSERT INTO customer <BR>SET姓 = $surname, <BR>firstname = $firstname"; <BR>$connection = mysql_connect("localhost", "fred", "shh"); <BR>mysql_select_db("winestore", $connection); <BR>$result = mysql_query($query, $connection); .php" ); <br>?> <br>このスクリプトはブラウザを新しいページにリダイレクトします: cust_receipt.php: <br><!DOCTYPE HTML PUBLIC <br>"-//W3C//DTD HTML 4.0 Transitional//EN" <BR>"http ://www.w3.org/TR/html4/loose.dtd" > <br><html> <br><head> <br><title>顧客挿入

私が顧客を挿入しました
このようにして、元のページを更新し続けても副作用はありません。
7. ロックメカニズムを上手に使ってアプリケーションのパフォーマンスを向上させます
レポートを緊急に実行したい場合は、テーブルに書き込みロックを追加して、他のユーザーが読み書きできないようにして、テーブルの処理速度を向上させることができます。 。
8. mysql_unbuffered_query() を使用して高速スクリプトを開発する
この関数は、mysql_query() 関数の代わりに使用できます。主な違いは、mysql_unbuffered_query() がクエリの実行後、データベースを待機したりロックしたりせずにすぐに返されることです。
ただし、出力結果セットのサイズが不明なため、返された行数は mysql_num_rows() 関数で確認できません。

上記では、メリー メリー クリスマスの内容を含め、PHP および MySQL 開発のための 8 つのヒントを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

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