sql >> Databasteknik >  >> RDS >> Sqlserver

ODBC och SQL Server 2008:Kan du inte använda förberedda satser?

Jag använder aldrig metoden fetchObject men vad sägs om detta:

$stmt = $pdo->prepare("SELECT * FROM Users WHERE username=?");
$stmt->bindValue(1, $username);
try{
    $stmt->execute();
    while ($row = $stmt->fetch()){
       // Do whatever.
    }
}catch(PDOException $e){
    echo($e->getMessage());
}

Jag lägger också märke till de enskilda citattecken runt ditt frågetecken ('?'), de borde inte finnas där.

För att kunna använda try/catch-grejer måste du inkludera detta när du skapar din PDO-anslutning:

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

Och du kanske vill lägga till detta också:

$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE); // Try to use the driver's native prepared statements.



  1. NHibernate.Mapping undantag. Ingen persister för Namespace.className

  2. MySQL 'WHERE'-sats som utesluter resultat i underfråga

  3. Grundläggande tabelluttryck, del 9 – vyer, jämfört med härledda tabeller och CTE

  4. Begränsning av samtidiga användarsessioner för en specifik inloggning i SQL Server