Xiaobai、いくつかアドバイスをください: このコード構造を最適化するにはどうすればよいですか?

WBOY
リリース: 2016-06-13 12:20:07
オリジナル
849 人が閲覧しました

Xiaobai、いくつかアドバイスをください: このコード構造を最適化するにはどうすればよいですか?
私は次のように設計しました。1 つはデータベース接続ファイル db.conn.php で、もう 1 つはカスタム関数ファイル config.inc.php

db.conn.php:

<?php<br />$db_host = 'localhost';<br />$db_user = '*****';<br />$db_password = '*******';<br />$db_database = '******';<br />$conn = new mysqli($db_host, $db_user, $db_password, $db_database);<br />mysqli_query($conn, "set names 'utf8'"); <br />if(mysqli_connect_errno()){die('数据库连接失败: ' . mysqli_connect_error());}<br />$site_data = $conn->query("SELECT * FROM `dh_member_control` WHERE `id`=1");<br />$site = mysqli_fetch_array($site_data);<br />?>
ログイン後にコピー


config.inc.php:

function marrbase(){<br />if(isset($_COOKIE["uname"]) && isset($_COOKIE["uid"])){<br />global $mbase;<br />global $conn;<br />$mql = "select * from dh_member where `id`=" . $_COOKIE["uid"] . " and `mck`=1";<br />$mbase_data = mysqli_query($conn, $mql);<br />$mbase = mysqli_fetch_array($mbase_data);}<br />else{exit();}<br />}<br /><br />function login_log($muid){<br />if (empty($muid)){exit();}<br />else {<br />global $conn;<br />$lql = "INSERT INTO `dh_mllog` (`uid`,`ltime`,`lip`,`lptxt`) VALUES (". $muid .",'". date("Y-m-d H:i:s") ."','". getIPaddress() ."','". getIPS138(getIPaddress()) ."')" ;<br />if (!mysqli_query($conn, $lql)){die(mysqli_error());exit();}}<br />}<br /><br />function memberislogin($back = NULL){<br />if(!isset($_COOKIE["uname"]) || !isset($_COOKIE["uid"])){echo "<script>alert('没有登录');window.location.href=\"/member/login.php?backurl=". $back ."\";</script>"; exit();}<br />else {<br />global $conn;<br />$login_check = mysqli_query ("SELECT * FROM `dh_member` WHERE `id`=". $_COOKIE["uid"] ." AND `mck`=1");<br />if(!mysqli_num_rows($login_check)){echo "<script>window.location.href=\"/member/login.php?backurl=". $back ."\"</script>"; exit();}}<br />}<br />.....等等自定义函数<br />
ログイン後にコピー


ユーザー フロントエンドでこれらのファイルを参照し、出力対話やその他の操作を実行します...

現在、関数をカスタマイズするたびにグローバル $conn を参照する必要があると感じていますが、それを設計するより良い方法はありますか?
Web デザイン全体にとって、より良いデザイン方法はありますか (CMS はお勧めしません)
大規模なプロジェクトを手がけた専門家からのアドバイスをお願いします。

- -- ---解決策----------------------
mysqli から db クラスを継承します
提供:
count 属性、影響を受ける項目の数を返すために使用されます
fetch メソッド、クエリ命令を渡し、1 次元配列を返します
fetchall メソッド、クエリ命令を渡し、2 次元配列を返します
exec メソッド、使用されます非クエリ命令を実行するには
基本的には十分です


-----解決策のアイデア-------- ---
コードのカプセル化と mysql モジュールのカプセル化について学び、必要に応じて、このファイルを参照し、カプセル化されたインターフェイスを直接呼び出します。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート