0

重複の可能性:
非推奨の mysql_* 関数を使用して古い mysql-php コードを正常に書き直すには?

私はこのサイトにいくつかの質問を投稿していますが、投稿できるたびに、少なくとも 1 人が出てきて、PDO を使用するように言われたことを知らなかったサポートが終了したため、mysql_ 関数の使用を停止するように依頼する可能性があります。すべてのコードをそれに変換するようにそれがどのように機能するかを理解しようとしていますが、コードに適用され、接続部分は機能しますが機能していないようです。これは私が試したもので、mysql_ 関数では機能しますが、PDO では機能しません。

<?php 
#database connection 
$con = new PDO('mysql:host=localhost;dbname=adnan;charset=UTF-8','root','');

$sql = $con->query("SELECT * FROM 
m1debtors INNER JOIN 
m1dtrans 
ON m1debtors.name = m1dtrans.user");

while ($row=$sql->fetchAll(PDO::FETCH_ASSOC)){
    $ name =  $row[' name '];
    $ user = $row[' user ']; 
}

// The JSON standard MIME header.
header('Content-type: application/json');
$array = array('name'=>$name, 'user'=>$user);
echo  json_encode($array);
?>
4

2 に答える 2

1

コードを PDO に変換するのは非常に簡単な作業です。
実際に必要なのは、マニュアル ページの例を読む (そして理解する) ことだけです。

連想配列の形式で必要な行は 1 つだけなのでfetch()、既にそれを行うことができます。

$row=$sql->fetch(PDO::FETCH_ASSOC);
// The JSON standard MIME header.
header('Content-type: application/json');
echo  json_encode($row);
于 2013-01-24T08:51:16.470 に答える
-3

PDO の使用をより簡単にするクラスを作成することをお勧めします。

次に、このようなことができます...

$database->query('SELECT id FROM users WHERE name = :name');

$database->bind(':name', 'Jenny');

$row = $database->single();

独自のクラスを作成するには、このチュートリアルをご覧ください。

http://culttt.com/2012/10/01/roll-your-own-pdo-php-class/

于 2013-01-24T09:01:35.327 に答える