1

私は PDO を使用してショッピングを作成しようとしています。これまでのところ、私は古い方法でそれを行ってきました.PDOでこれを行うために過去6日間試みてきました. 誰か助けてください。どうすればそれをPDOにできますか

dbconnect();
    $i = 0; 
    foreach ($_SESSION["cart_array"] as $each_item) { 
        $item_id = $each_item['item_id'];
        $sql = mysql_query("SELECT * FROM product WHERE ID='$item_id' LIMIT 1");
        while ($row = mysql_fetch_array($sql)) {
            $product_name = $row["Name"];
            $price = $row["Cost"];
            $details = $row["Description"];
        }
4

3 に答える 3

-1

dbconnect() 関数に、データベースへの接続を作成するためのコードが含まれていると推測します。適切な PDO 接続をセットアップする方法は次のとおりです。

try {
    $pdo = new PDO($dsn, $user, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
} 

ここで $dsn の MySQL 形式に関するドキュメントを読むことができます: http://www.php.net/manual/en/ref.pdo-mysql.php

次に、コードの他の部分は次のようになります。

foreach ($_SESSION["cart_array"] as $each_item) { 
    $item_id = $each_item["item_id"];
    $sql = "SELECT * FROM Hair_category WHERE Hair_ID=:item_id LIMIT 1");
    $stmt = $pdo->prepare($sql);
    $stmt->execute(array(":item_id"=>$item_id));
    while ($row = $stmt->fetch()) {
        $product_name = $row["Name"];
        $price = $row["Start_Cost"];
        $details = $row["Brief_Description"];
    }
}

これによりエラーが発生した場合は、接続が作成された直後にその属性を設定したため、例外がスローされます。

于 2013-05-30T00:27:43.017 に答える