MySQL Abfrage geht nicht

taurin

Erfahrenes Mitglied
hi, ich versuche jetzt schon seit mehr als 3 std eine Abfrage zu machen, die eig gehen müsste, nur tut sie es nicht. aber manchmal sieht man ja den wald vor lauter bäumen nicht, und deswegen wende ich mich mal an euch. vllt findet ihr ja was, was ich nicht seh. danke schonmal im voraus.

PHP:
$stat = $dbh->prepare("SELECT userID FROM user WHERE userName = ?)");
$stat->bindParam(1, $userName);
$stat->execute();
		
while($row = $stat->fetch()){ 
	print $row['userID'];
}
lg
 
Fehlermeldung? Fehlerverhalten?

Aber mal ganz grundsätzlich. In deinem Code willst du dem $dbh beibringen, dass der userName ein Integer ist. Ich denke es ist eher ein String
PHP:
$stat->bindParam('s', $userName);

Nachtrag: Das ist ja nicht mal ein i, sondern eine 1. Das ist garantiert falsch.

Nachtrag II: Jepp, die Klammer ist auch zuviel - ergibt 2 Fehler
 
das ? ersetzt die $userName in der zeile drunter.

ich danke dir. ich sag ja, manchmal hilfts einfach jmd zu fragen^^
 
die 1 bezieht sich auf das ? wären 2 enthalten würde das nächste mit 2 angesprochen.
Wirklich? Da sagt mir aber die PHP-Hilfe etwas anderes.
http://ch.php.net/manual/de/mysqli-stmt.bind-param.php
Code:
bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] )
[...]
types
A string that contains one or more characters which specify the types for the corresponding bind variables:
[...]
var1
The number of variables and length of string types must match the parameters in the statement.

Woher soll mysqli ansonsten wissen um was für ein Datentyp es sich handelt?

Bei mehreren Variablen werden alle hintereinander aufgelistet.
PHP:
$stmt = $mysqli->prepare("INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);
 
allerdings kann man auch da den typ angeben. würde dann so aussehn
PHP:
$stmt->bindParam(1, $userName, PDO::PARAM_STR, 16);
 
Zurück