0

PHP の PDO を使用して MySQL に接続します。接続用に次のコードがあります。

$dbh = new PDO ( $db_host.$db_database, $db_user, $db_pass );
$dbh->exec ( "set names utf8" );

別のファイルに関数があります:

function Image()
{
    include 'config/connect.php';
    #connected         

    $sql = 'Select * from settings where name="X" ';
    $stmt = $dbh->prepare($sql);
    $stmt->execute();
    $row = $stmt->fetchObject();
    $Template = $row->web_site_template;
    echo "Template"; 
}

そのためにファイルを使用できinclude connect.phpますが、そうではありません。

次のような他のすべての関数でmysqlに接続するために、connection()のような1つの関数を使用したい:

function Image()
{
    connection();

    $sql = 'Select * from settings where name="X" ';
    $stmt = $dbh->prepare($sql);
    $stmt->execute();
    $row = $stmt->fetchObject();
    $Template = $row->web_site_template;
    echo "Template"; 
}
4

2 に答える 2

1

これが関数です。好きなファイルに入れてください。

function connection() { 
$db_host = "..."; $db_database = "..."; $db_user = "..."; $db_pass = "...";
$GLOBALS["dbh"] = new PDO ( $db_host.$db_database, $db_user, $db_pass );
$GLOBALS["dbh"]->exec ( "set names utf8" );
}

これはあなたのメインコードです。別のファイルに配置する場合は、上記のコードを含むファイルを含めます。

connection();

$sql = 'Select * from settings where name="X" ';
$stmt = $dbh->prepare($sql);
$stmt->execute();
$row = $stmt->fetchObject();
$Template = $row->web_site_template;
echo "Template"; 

ただし、コーディングスタイルが悪いと思います。

于 2013-01-10T14:28:23.533 に答える
0

私の質問に対する最良の解決策を見つけました (1 つ以上の関数に MYSQL 接続を使用する方法):

$db_database ="YourTableName";
$db_user     ="YourUsername";
$db_pass     ="YourPassword";
$db_host     ="YourHostName";

$dbh = new PDO ( "mysql:host=$db_host;dbname=$db_database", $db_user, $db_pass );
$dbh->exec ( "set names utf8" );

$database = $dbh; // Here you can use $dbh too, but I use $database to understand the difference here .

#start function
function Template(){
    global $database; //use $database as global

    $sql = 'Select * from YourTableName where column="Record"';
    $stmt = $database->prepare($sql); //use $database Instead $dbh 
    $stmt->execute();
    $row = $stmt->fetchObject();
    $Template = $row->web_site_template;
    echo $Template; 
   }

Template(); // Here is your result.
于 2013-01-12T09:49:04.947 に答える