-1

MySql DB に接続して INSERT を実行する php クラスを作成しました。私はこれを行いましたが、うまくいきます。ここで、コードの接続部分を構成ファイルに追加したいと思います。ここから呼び出すことができます。

PHPでこれを行うにはどうすればよいですか?

<?php

mysql_connect("localhost", "user", "xxxxx") ;
mysql_select_db("mydb");
...
...// Insert to DB (which works)
?>
4

4 に答える 4

1

ph を使用して mysql データベースに接続するのは非常に簡単です。SQLインジェクションやその他のセキュリティ上の問題がある可能性があるため、MySQL関数ではなくMySQLiまたはPDOを使用する方が良いですが、コードを適切な方法で記述します。ファイルに config.php のような名前を付けて、mysql 接続を使用するたびに追加します。これを使用するには、require_once を使用するか、php の include 関数を使用します。

それが役立つことを願っています..

于 2012-08-30T06:40:31.793 に答える
1

正確にはわかりませんが、この構成ファイルを実行する構成ファイルにこのパラメーターを入れます

$config['hostname'] = 'yourserver';
$config['user'] = 'youruser';
$config['password'] = 'password';

そして、クラス接続でこれを呼び出します

mysql_connect($config['hostname'],$config['user'],$config['password']);

または、より簡単に conex のパラメーターを使用してコンストラクトを構築し、次のようにします。

function __construct($host,$user,$password,$database){
    mysql_connect($host,$user,$password) ;
    mysql_select_db($database);
}
于 2012-08-30T06:09:28.130 に答える
0

PHP からの通知によると、少なくとも PHP 5.5/6.0 までは mysql_* 拡張を公式に非推奨にすることはないため、これらの関数が完全になくなるか E_DEPRECATED エラーが発生し始める前に、スクリプトを書き直す時間があります。http://news.php.net/php.internals/53799

したがって、新しいスクリプトには PDO または mysqli を使用します。

PDOと接続

<?php
try{
    $con = new PDO('mysql:host=127.0.0.1;dbname=test','root','password');
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $con->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
}catch (Exception $e){
    die('Cannot connect to database. Details:'.$e->getMessage());
}
?>

現在、上記のコードが構成ファイルにある場合は、接続オブジェクトを使用include('config.php')して 含めることができます。$con

グローバルスコープではないため$con、コンストラクトを介してクラスに渡す必要があります。

<?php 
include('config.php');
class yourclass{

    function __construct(PDO $con){
        $this->db = $con;
    }

    function someMethod($valueA,$valueB){
        $sql = "INSERT
                INTO   TABLE
                       (
                              colA,
                              colB
                       )VALUES(
                              :colA,
                              :colB
                       )";
        $query = $this->db->prepare($sql);

        $query->bindParam(":colA", $valueA);
        $query->bindParam(":colB", $valueB);
        $query->execute();
    }
}
$aClass = new yourclass($con);
$aClass->someMethod('someValueforA','someValueforB');
?>

それが役に立てば幸い。

于 2012-08-30T06:15:19.187 に答える
-1

クラスのコンストラクターで接続コーディングを次のように記述できます。

function __construct($host,$user,$password,$dbname){

  mysql_connect($host,$user,$password) ;
  mysql_select_db($dbname);

}

または、接続が定義されている別のクラスを作成してから、必要に応じてそのクラスを拡張できます(継承)

于 2012-08-30T06:04:17.763 に答える