VGOo
New member
Hab zur Zeit ein ziemlich nerviges Problem und ich weiß seit einigen Tagen nicht waren dieser Fehler auftritt. Hoffentlich kann mir einer von euch sagen wo der Hund in der ganzen Geschichte begraben ist.
Ganze Funktion getUserByUsername:
/**
* Ermittelt die Daten f�r einen Benutzer
*
* @param username Benutzername
* @author WoAn 03.10.2011
*/
function getUserByUsername( $username )
{
self::initialize();
$stmt = $this->mySqlDb->prepare( "select * from users where username=?" );
if ( $stmt != false )
{
$isOk = $stmt->bind_param( "s", $username );
if ( $isOk )
{
$isOk = $stmt->execute();
}
if ( $isOk )
{
$isOk = self::evaluateUserData( $stmt, $this );
}
$error = $stmt->error;
$errno = $stmt->errno;
$stmt->close();
}
else
{
$isOk = false;
}
if ( $isOk == false )
{
if ( $error == "" )
{
$error = $this->mySqlDb->error;
$errno = $this->mySqlDb->errno;
}
if ( $error == "" )
{
$lastError = error_get_last();
$error = $lastError['message'];
}
throw new MySqlException( $error, $errno );
}
self::getRights();
$this->worktimes = self::getWorktimeInternal();
$this->transfers = self::getTransfersInternal();
}
Hier der Funktionsaufruf:
Und hier die Funktion in der es zum Fehler kommt:
/**
* Ermittelt die Benutzerdaten
*/
private function evaluateUserData( $stmt, $data )
{
$isOk = $stmt->bind_result( $id, $username, $firmId, $defaultTown, $defaultWorktype, $defaultProject,
$defaultOffert, $firstName, $lastName, $email, $passwords, $rights, $birthday, $entry,
$separation, $loginTime, $lastLogin, $defaultStartTime, $defaultEndTime, $defaultPause, $defaultText,
$projectFormat, $mobilePhone, $disabled, $worktime, $holidays );
if ( $isOk )
{
while( $stmt->fetch() )
{
$userData = $data;
if ( is_array( $data ) )
{
$userData = new User();
}
$userData->setId( $id );
$userData->setUsername( $username );
$userData->setFirmId($firmId);
$userData->setDefaultTown($defaultTown);
$userData->setDefaultWorktype($defaultWorktype);
$userData->setDefaultProject($defaultProject);
$userData->setDefaultOffert($defaultOffert);
$userData->setFirstName($firstName);
$userData->setLastName($lastName);
$userData->setEmail($email);
$userData->setPassword($passwords);
$userData->setRights($rights);
$userData->setBirthday($birthday);
$userData->setEntryDate($entry);
$userData->setSeparationDate($seperation);
$userData->setLoginTime($loginTime);
$userData->setLastLogin($lastLogin);
$userData->setdefaultStartTime($defaultStartTime);
$userData->setdefaultEndTime($defaultEndTime);
$userData->setdefaultPause($defaultPause);
$userData->setdefaultText($defaultText);
$userData->setprojectFormat($projectFormat);
$userData->setMobilePhone($mobilePhone);
$userData->setDisabled($disabled);
$userData->setWorktime($worktime);
$userData->setHolidays($holidays);
if ( is_array( $data ) )
{
array_push( $data, $userData );
}
}
}
return( $isOk );
}
}
Fehler:
Danke schon im Voraus für eure Hilfe 🙂
Ganze Funktion getUserByUsername:
Spoiler:
/**
* Ermittelt die Daten f�r einen Benutzer
*
* @param username Benutzername
* @author WoAn 03.10.2011
*/
function getUserByUsername( $username )
{
self::initialize();
$stmt = $this->mySqlDb->prepare( "select * from users where username=?" );
if ( $stmt != false )
{
$isOk = $stmt->bind_param( "s", $username );
if ( $isOk )
{
$isOk = $stmt->execute();
}
if ( $isOk )
{
$isOk = self::evaluateUserData( $stmt, $this );
}
$error = $stmt->error;
$errno = $stmt->errno;
$stmt->close();
}
else
{
$isOk = false;
}
if ( $isOk == false )
{
if ( $error == "" )
{
$error = $this->mySqlDb->error;
$errno = $this->mySqlDb->errno;
}
if ( $error == "" )
{
$lastError = error_get_last();
$error = $lastError['message'];
}
throw new MySqlException( $error, $errno );
}
self::getRights();
$this->worktimes = self::getWorktimeInternal();
$this->transfers = self::getTransfersInternal();
}
Hier der Funktionsaufruf:
Spoiler:
$isOk = self::evaluateUserData( $stmt, $this );
Und hier die Funktion in der es zum Fehler kommt:
Spoiler:
/**
* Ermittelt die Benutzerdaten
*/
private function evaluateUserData( $stmt, $data )
{
$isOk = $stmt->bind_result( $id, $username, $firmId, $defaultTown, $defaultWorktype, $defaultProject,
$defaultOffert, $firstName, $lastName, $email, $passwords, $rights, $birthday, $entry,
$separation, $loginTime, $lastLogin, $defaultStartTime, $defaultEndTime, $defaultPause, $defaultText,
$projectFormat, $mobilePhone, $disabled, $worktime, $holidays );
if ( $isOk )
{
while( $stmt->fetch() )
{
$userData = $data;
if ( is_array( $data ) )
{
$userData = new User();
}
$userData->setId( $id );
$userData->setUsername( $username );
$userData->setFirmId($firmId);
$userData->setDefaultTown($defaultTown);
$userData->setDefaultWorktype($defaultWorktype);
$userData->setDefaultProject($defaultProject);
$userData->setDefaultOffert($defaultOffert);
$userData->setFirstName($firstName);
$userData->setLastName($lastName);
$userData->setEmail($email);
$userData->setPassword($passwords);
$userData->setRights($rights);
$userData->setBirthday($birthday);
$userData->setEntryDate($entry);
$userData->setSeparationDate($seperation);
$userData->setLoginTime($loginTime);
$userData->setLastLogin($lastLogin);
$userData->setdefaultStartTime($defaultStartTime);
$userData->setdefaultEndTime($defaultEndTime);
$userData->setdefaultPause($defaultPause);
$userData->setdefaultText($defaultText);
$userData->setprojectFormat($projectFormat);
$userData->setMobilePhone($mobilePhone);
$userData->setDisabled($disabled);
$userData->setWorktime($worktime);
$userData->setHolidays($holidays);
if ( is_array( $data ) )
{
array_push( $data, $userData );
}
}
}
return( $isOk );
}
}
Fehler:
Spoiler:
mysqli_stmt::bind_result() [
Du hast keine Berechtigung, den Link zu sehen, bitte Anmelden oder Registrieren
]: Number of bind variables doesn't match number of fields in prepared statement in D:\xampp1.7\xampp\htdocs\ddev\class\user.php on line 2114Danke schon im Voraus für eure Hilfe 🙂
Zuletzt bearbeitet: