0
PHP MySQL接続のベストプラクティスについて質問があります。 今のところ私は1000行のデータベースを持っています。この列には、たとえば製品の説明が含まれています。しかし行の私は名前がないが名前のIDが、私は色がないが、色などのIDを持っています。テーブルの色と色のIDの変更名は同じです。そんなことはOKですか?MySQLへの複数のPHP接続 - ベストプラクティス
mysqliへの複数の接続で問題が発生することがあるので、私は尋ねています。私の仕事の仕方を以下に示します:
// connection
function getConnected($host,$user,$pass,$db) {
$mysqli = new mysqli($host, $user, $pass, $db);
$mysqli->set_charset("utf8");
if($mysqli->connect_error)
die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
return $mysqli;
}
function msq(){
return getConnected('127.0.0.1','root','','database');
}
// functions
function getcolor($temp){
$db2=msq();
if($result = $db2->query("SELECT * FROM linkcolor WHERE idcolor='$temp' ")){
if($result->num_rows > 0) {
$res = $result->fetch_assoc();
return $res['name'];
}else{
return 'none';
}
}else{
return 'none';
}
}
function getname($temp){
$db2=msq();
if($result = $db2->query("SELECT * FROM linkname WHERE idname='$temp' ")){
if($result->num_rows > 0) {
$res = $result->fetch_assoc();
return $res['name'];
}else{
return 'none';
}
}else{
return 'none';
}
}
// query
if($quer = $db->query("SELECT * FROM products")){
if($quer->num_rows > 0) {
while($qr = $quer->fetch_assoc()){
echo getcolor($qr['idcolor']);
echo getname($qr['idname']);
}
}else{
}
}else{
}
いいですか?または、mysqlから配列にデータを取得し、クエリをフェッチしているときにそれらを処理する方が良いでしょうか?
あなたの質問のタイトルと本体自体との接続にアクセスすることができます一致しません。どうか明らかにしてください! – Akintunde007
私は彼が何をしようとしているのか理解していると思います。 1つのクエリから結果を取得し、別のクエリの結果を取得する代わりに、2つの接続を開き、同時にアクセスする2つのクエリを設定する必要があります。個人的に私はそれをしません... mysqlとphpは、ページリクエストごとに1つの接続を使用して結果を処理することについてはかなり良いです。 – IncredibleHat
私は正直なところ、他のテーブルから余分な列をIDで取得するようにJOINSを使うことをお勧めします: 'SELECT p。*、n.nameをLinkName、c.nameをColorName FROM products p LEFT JOIN linkname n ON p.idname = n.idname LEFT JOIN linkcolor c ON p.idcolor = c.idcolor' – IncredibleHat