2012-08-28 5 views
1

지난 주 스크립트 문제를 해결하는 데 도움이되었습니다. 그것은 해결되었습니다. 다시 한번 감사드립니다. 그러나 많은 사람들이 대신 PDO를 사용하도록 권장했습니다. 이 스크립트는 PDO를 위해 어떻게 작성해야합니까? 권장하는 예제 튜토리얼이 있습니까?MYSQL 함수가 아닌 PDO

<?php 
$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("bdcarterascv2", $con); 

$COD_PAIS = '3'; 
$F_HASTACORTE = '2012-03-31 01:00:00'; 

$result = mysql_query("SELECT mcarteras.DES_CARTERA_CC     AS 'Short Name of Fund' 
    , mcarterasflias.DES_CARTERAFLIA   AS 'I/C' 
    , msociedades.DES_SOCIEDAD_CORTO   AS 'Fund Manager Company' 
    , mcarteras_clases.DES_CARTERACLASE  AS 'Class' 
    , mcarteras_clasesesp.DES_CARTERACLASE_ESP AS 'Special Class' 
    , dr_rentmovil_carteras.POR_RENTCARTERA AS 'TTR year-to-date %' 
    , dficha_mes.POR_REMUNERA_COBRADA   AS 'Mgmt Fee Effectively Charged' 
    , dficha_mes.POR_GASTOS_TOTALESC   AS 'Total Expenses %' 
    , dficha_mes.VR_CARTERA_FCORTE    AS 'Fund Size' 

    FROM mcarteras 
INNER 
    JOIN mcarterasflias 
    ON mcarterasflias.ID_CARTERAFLIA   = mcarteras.ID_CARTERAFLIA 
INNER 
    JOIN msociedades 
    ON msociedades.ID_SOCIEDAD     = mcarteras.ID_SOCIEDADADM 
INNER 
    JOIN mcarteras_clases 
    ON mcarteras_clases.ID_CARTERACLASE  = mcarteras.ID_CARTERACLASE 
INNER 
    JOIN mcarteras_clasesesp 
    ON mcarteras_clasesesp.ID_CARTERACLASE_ESP = mcarteras.ID_CARTERACLASE_ESP 
INNER 
    JOIN dr_rentmovil_carteras 
    ON dr_rentmovil_carteras.ID_CARTERA  = mcarteras.ID_CARTERA 
    AND dr_rentmovil_carteras.COD_PAIS          = $COD_PAIS 
    AND dr_rentmovil_carteras.F_HASTACORTE         = '$F_HASTACORTE' 
    AND dr_rentmovil_carteras.ID_FORMATO = 1 
    AND dr_rentmovil_carteras. ID_COLUMNA = 5 
INNER 
    JOIN dficha_mes 
    ON dficha_mes.ID_CARTERA     = mcarteras.ID_CARTERA 
    AND dficha_mes.COD_PAIS             = $COD_PAIS 
    AND dficha_mes.F_CORTE             = '$F_HASTACORTE' 

WHERE mcarteras.COD_PAIS             = $COD_PAIS 
    AND mcarteras.ID_CARTERATIPO = 4 
    AND mcarteras.ID_CARTERAFLIA IN (3,4) 
    AND mcarteras.IND_PUBLICACION = 1 
    AND mcarteras.COD_ESTADO= 1 

") 
or die(mysql_error()); 

// HTML ... Aliases from Mysql 
echo "<table border='1'> 
<tr> 
<th>Short Name of Fund</th> 
<th>I/C</th> 
<th>Fund Manager Company</th> 
<th>Class</th> 
<th>Special Class</th> 
<th>TTR year-to-date %</th> 
<th>Mgmt Fee Effectively Charged</th> 
<th>Total Expenses %</th> 
<th>Fund Size</th> 

</tr>"; 

//<tr> specifies table row. for each <td> (table data) will specify a new column. The  $row specifies the mysql column name (in this case using an alias) 
    while($row = mysql_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['Short Name of Fund'] . "</td>"; 
    echo "<td>" . $row['I/C'] . "</td>"; 
    echo "<td>" . $row['Fund Manager Company'] . "</td>"; 
    echo "<td>" . $row['Class'] . "</td>"; 
    echo "<td>" . $row['Special Class'] . "</td>"; 
    echo "<td>" . $row['TTR year-to-date %'] . "</td>"; 
    echo "<td>" . $row['Mgmt Fee Effectively Charged'] . "</td>"; 
    echo "<td>" . $row['Total Expenses %'] . "</td>"; 
    echo "<td>" . $row['Fund Size'] . "</td>"; 

    echo "</tr>"; 
    } 
echo "</table>"; 

mysql_close($con); 
?> 
+0

holy inner join batman;) –

답변

1

나는 PDO로 번역하지 않을 것입니다. 필자는 간단한 쿼리를 위해 PDO를 선호하지만 순수한 SQL에서는 복잡한 작업을 선호합니다. 나는 보통 JOIN에 선을 그린다.