Oprettet søn. d. 28. oktober 2012 kl. 13:38:45

gigi1
gigi1 (845 point. Point ude: 325)

PDO til SQLSRV

Hej

Hvordan ændre jeg følgende kode til at virke med følgende API:

Microsoft SQL Server Driver for PHP
http://php.net/ (...)



$username = 'test';

try {
  $conn = new PDO('mysql:host=$host;dbname=$database', $username, password);
  $stmt = $conn->prepare('SELECT username users WHERE username = :username LIMIT 1');
  $stmt->execute(array('username' => $username));
 
  if ($stmt->rowCount() > 0) {
  $result = $stmt->fetch);
 
        echo $result['username'];
         
  } else {
    echo 'Brugernavnet blev ikke fundet!';
    die();
  }
} catch(PDOException $e) {
    echo 'ERROR: ' . $e->getMessage();
}



Jeg bruger følgende kode til at forbinde til SQL serveren:


$serverName = "serverName\sqlexpress, 1542"; //serverName\instanceName, portNumber (default is 1433)
$connectionInfo = array( "Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
    echo "Connection established.<br />";
}else{
    echo "Connection could not be established.<br />";
    die( print_r( sqlsrv_errors(), true));
}

Skrevet søn. d. 28. oktober 2012 kl. 18:24:42| #1

olebole
olebole (216.713 point)
<ole>

Har du tjekket denne og denne side i dokumentationen?

Man skulle tro, du ville få fejl udskrevet, hvis der er nogen. Har du fejlmeddelelser slået til? Under alle omstændigheder kan du prøve at udskrive fejl på passende steder med:

var_dump($db->errorInfo());

/mvh
</bole>

Skrevet tir. d. 30. oktober 2012 kl. 10:34:09| #2

Haven
Haven (1.015 point)
Din kode til forbindelse, til SQL databasen ser OK ud.
Den kunne evt sættes op som nedenstående istedet.

//Sæt parameterer til databasen
$host = "localhost"; //Som regel localhost
$dbLogin = "sa"; //Dit login til databasen
$dbPassword = "password"; //Din kode til databasen
$database = "databaseNavn"; //Navnet på databasen

//Sæt connectionstring
$conn = sqlsrv_connect($this->host, array("UID" => $dbLogin, "PWD" => $dbPassword, "Database" => $database));

//Test forbindelse, og ved fejl udskriv fejl array
if(!$conn) die( print_r( sqlsrv_errors(), true));


Din query, kunne se sådan ud med SQLSRV:
$username = 'test';

//Der bruges parameterized query, af hensyn til SQL injection
$stmt = "SELECT TOP 1 username FROM [users] WHERE username = ?";
$params[] = $username;

$query = sqlsrv_query($conn, $stmt, $params);

//Hvis query er successfuld, sætter vi $result, til at indeholde resultatet fra query'en
if($query)
    $result = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC);
else
    print_r(sqlsrv_errors()); //Ved fejl, udskriv fejl array

//Tjek, at resultatet ikke er tomt.
if(!empty($result))
    echo $result['username'];
else
    die("Brugernavnet blev ikke fundet");


/Haven

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   


Seneste spørgsmål

Kald et php fra et html dokument

Oprettet den 18. maj 2013 kl. 17.46
side1 giver 200 point for svar | Giv et svar »

Lægge to løkker sammen volder problemer (for mig)

Oprettet den 18. maj 2013 kl. 14.52
allandk giver 60 point for svar | Giv et svar »

multi aray fra mysql

Oprettet den 18. maj 2013 kl. 08.07
steen-h giver 100 point for svar | Giv et svar »








Tips & Tricks fra PC World

Teaser billede

Her er seks Google Labs-funktioner, som du skal slå til med det samme

Gmail Labs giver dig adgang til en masse smarte funktioner, som Googles ingeniører leger med i øjeblikket.


Anmeldelser fra PC World

Teaser billede

Test: Samsung Galaxy S4 er et hit - trods gøglertricks

Kan Samsung beholde førertrøjen i det store Android-race? Galaxy S4 er smækfyldt med innovative funktioner, men også med en del gøgl. Er det for meget? Få vores dom over Samsungs nye topmodel.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Tre smarte trick som gør Windows 8 bedre

Boot direkte til skrivebordet, få en strategisk godt placeret luk-knap og slip for at logge ind. Her er tre tips til Windows 8, som gør det nemmere at blive venner med styresystemet.


Nyheder fra Computerworld

Teaser billede

Galleri: Her er Googles nyeste værktøj og legetøj

Google har i denne uge afholdt udviklerkonferencen I/O i San Francisco. Se her hvad søgegiganten kunne præsentere af nyskabelser.


IT Kurser
Samarbejdspartnere

Udgiver · © 2013 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger