2017-02-07 4 views
0

Hallo, wie Sie diese Deklaration mit SQL-Server erstellen.So erstellen Sie deklarieren mit PDO

$charItems = $conn->prepare("DECLARE @item varbinary(3792); SET @item 
= (SELECT Inventory FROM Character WHERE Name='".$userCharsDrop['Name']."'); print @item"); $characterItems = 
$charItems->fetchALL(PDO::FETCH_ASSOC); 

Daraus ergibt sich, Code ist:

Array 
(
) 

Array 
(
) 
+1

'DECLARE' kann nur innerhalb einer gespeicherten Prozedur verwendet werden. Sie müssen keine Variablen deklarieren, die mit '@' beginnen. – Barmar

+0

Es gibt keine 'PRINT'-Anweisung in SQL. – Barmar

+1

Welche RDBMS verwenden Sie? MySQL, SQL-Server, Oracle usw.? Fügen Sie der Frage das entsprechende Tag hinzu. – Barmar

Antwort

1

Sie brauchen nicht DECLARE zu verwenden. Sie sollten auch vorbereitete Anweisungen verwenden, um SQL-Injection-Angriffe zu vermeiden.

Dieser Code sollte für Sie arbeiten:

$sth = $conn->prepare("SELECT inventory FROM character WHERE name=:name"); 
$sth->bindParam(":name", $userCharsDrop['Name']); 
$sth->execute(); 
$charItems = $sth->fetchAll(PDO::FETCH_COLUMN, 0); 

Sie möchten können Parameter für fetchAll zwicken. Lesen Sie mehr here.

Verwandte Themen