2009-03-12 12 views
0
function getLink($sa){ 
    if($sa=='1'){ 
     $sa = 'qp_bbl'; 
    } else { 
     $sa = 'qp_sbl'; 
    } 
    return $sa; 
} 

if(!$_POST['action']){ 
    header ("Location: index.php"); 
}else{ 

$sa = $_POST['select']; 

$sa = getLink($sa); 


$link = connect(HOST, USER, PASSWORD, $sa); 

(....) 
} 

これは私を夢中にしています。選択には「1」または「2」を使用できます。私がハードコード$ sa = '1'または '2'の場合はすべてうまく動作しますが、$ _POST ['select']から設定すればいいとは限りません。私は実際に理解していません...mysqlデータベース間の切り替え

答えて

2

このソリューションでは、すべてのページリクエストに「sa」をポストする必要があります。そうでないと、他のリクエストでは常に「qp_sbl」に戻ります。セッション。

1

$ _POST ['select']が渡されていることを確認するために、print_r($ _ POST)を使用して$ _POSTの内容を調べることができます。

ただし、$ _POSTデータに基づいてデータベース接続を行うべきではありません。これはあまり安全ではありません。あなたは条件付きで$ _POSTに基づいてデータベースを選択したい場合は、このような何かを試してみてください。

switch($_POST['select']) { 

    case '1': $db = '1'; break; 
    default: $db = '2'; 

} 

その方法は、あなたが有効なデシベルを選択していることを確信しています。

0

jonstjohnさんのprint_rに関するコメントを続けるには、そこに問題がある場合に備えて、このスクリプトに投稿するための初期フォームを見ることもできます。

また、選択された値がポストされたときにセッションに保存してから、セッションの値を変更するまで使用すると便利です。

関連する問題