5

私は PDO で作業していましたが、PDO::FETCH_LAZY を理解できませんでした。PHP のマニュアルでは、「...PDO::FETCH_LAZY は、アクセス時にオブジェクト変数名を作成します...」と記載されています。これをテストするための次のコードがあります。

クラスb{
    関数 __construct(){}
}
$b = 新しい b();

$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'pssword');

//testtable{id int, title varchar, msg varchar, time varchar}

$res = $pdo->query("SELECT * FROM testtable limit 1");
$b = $res->fetch(PDO::FETCH_LAZY);
echo $b->msg;
var_dump($b);

これは、1 つのプロパティ msg のみを持つオブジェクト b を出力することになっています。しかし、代わりに、出力は次のようになります。

これはサンプル メッセージです。

object(PDORow)#6 (5) {
  ["クエリ文字列"]=>
  string(31) "SELECT * FROM testtable limit 1"
  ["id"]=>
  文字列(1) "1"
  ["タイトル"]=>
  string(5) "サンプルタイトル"
  ["メッセージ"]=>
  string(13) "これはサンプル メッセージです。"
  [「時間」]=>
  文字列(7) "1232123"
}

誰でもこれに光を当てることができますか?ありがとう。

4

2 に答える 2

1

列をなして

$b = $res->fetch(PDO::FETCH_LAZY);

'b' オブジェクトを上書きする変数 $b に新しい値 (PDORow オブジェクト) を与えました

于 2015-04-16T08:49:05.423 に答える