Category Archives: PDO

使用 PDO 要注意的事

1.

$pdo = New PDO(......);
$sql = "SELECT .....";
$st = $pdo->prepare($sql);
$st->execute();
$rows = $st->fetchAll();

2.

$pdo = New PDO(......);
$sql = "SELECT .....";
$st = $pdo->query($sql);
$rows = $st->fetchAll();

//雖然以上兩段程式都可以取出 $rows ,但重複並交叉執行的話,就會出現問題。

//這段程式可以正確取出 $rows1 與 $rows2:
$pdo = New PDO(......);
$sql = "SELECT .....";
$st = $pdo->query($sql);
$rows1 = $st->fetchAll();

$sql = "SELECT .....";
$st = $pdo->prepare($sql);
$st->execute();
$rows2 = $st->fetchAll();

//這段程式只能正確取出 $rows1 ,$rows2 會是個空的陣列:
$pdo = New PDO(......);
$sql = "SELECT .....";
$st = $pdo->prepare($sql);
$st->execute();
$rows1 = $st->fetchAll();

$sql = "SELECT .....";
$st = $pdo->query($sql);
$rows2 = $st->fetchAll();//這問題有兩種解法:

別偷懶,乖乖的用 PDO::prepare 與 PDOStatement->execute。
若要用變數接收 PDO::query 回傳的 PDOStatement,請先 unset(),例: unset($st); 。