7

やったことある :

$resource = mysql_query("SELECT * FROM table WHERE id = " . $id);
$user = mysql_fetch_assoc($resource);
echo "Hello User, your number is" . $user['number'];

mysql ステートメントはすべて非推奨であり、使用すべきではないと読みました。

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

最初の行は次のようになります。

$stmt = $db->prepare("SELECT * FROM table WHERE id = " . $id); // there was an aditional double quote in here.
$stmt->execute(array(':id' => $id));

mysql_fetch_assoc() 関数はどうですか?

私はphpを使用しています

4

5 に答える 5

1

ここに すてき な マニュアル があります.

そこから、フェッチごとにフェッチモードを明示的に設定する必要がないことを学ぶことができます。
...そして、PDO を使用すると、数値をエコーするために配列をまったく必要としません。

$stmt = $db->prepare("SELECT number FROM table WHERE id = ?");
$stmt->execute(array($id));
echo "Hello User, your number is".$stmt->fetchColumn();
于 2013-05-03T16:53:21.670 に答える
1

すべてマニュアルに詳しく記載されています: http://php.net/manual/en/pdostatement.fetchall.php

例として:

<?php
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();

/* Fetch all of the remaining rows in the result set */
print("Fetch all of the remaining rows in the result set:\n");
$result = $sth->fetchAll();
print_r($result);
?>
于 2013-05-03T16:41:27.887 に答える
0

これは素晴らしいチュートリアルです: http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers

<?php
   $db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
   $stmt = $db->query("SELECT * FROM table");
   $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
   var_dump($results);
?>
于 2013-05-03T16:49:03.600 に答える
-2

同じために PDO::FETCH_ASSOC を使用できます。

$stmt = $db->prepare("SELECT * FROM table WHERE id = :id");
$stmt->execute(array(':id' => $id));
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
while($record = $stmt->fetch()) {
   //do something
}

ここで良いチュートリアルを見つけることができます

于 2013-05-09T05:48:20.327 に答える