2016-07-11 7 views
1

Der folgende Code erzeugt eine Ausnahme bei $ stmt-> execute();Nachricht: SQLSTATE [HY093]: Ungültige Parameternummer: Parameter wurde nicht definiert

Dies ist ein neues Problem, ich habe andere Auflistungen mit diesem Fehler durchlaufen und die erkannten Probleme werden hier behoben. Ist dies ein neues Problem, das bei Slim gemeldet werden muss? Irgendeine Idee, was könnte es noch sein? Vielen Dank, das hat sich als ein 2-Tage-Problem herausgestellt. Ich bin blind blind.


$gender    = $_POST['gender']; 
$firstName   = $_POST['firstName']; 
$lastName   = $_POST['lastName']; 
$age    = $_POST['age']; 
$phone    = $_POST['phone']; 
$contactPreference = $_POST['contactPreference']; 
$city    = $_POST['city']; 
$state    = $_POST['state']; 
$country   = $_POST['country']; 
$zip    = $_POST['zip']; 
$adType    = $_POST['adType']; 
$activity   = $_POST['activity']; 
$whenDate   = $_POST['whenDate']; 
$providerGender  = $_POST['providerGender']; 
$providerAge  = $_POST['providerAge']; 
$providerOffer  = $_POST['providerOffer']; 

$db = new PDO("mysql:host=$server;dbname=$dbname;charset=utf8", $username, $password); 
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
$stmt = $db->prepare(
    'INSERT INTO customers (
        gender, 
        firstName, 
        lastName, 
        age, 
        phone, 
        contactPreference, 
        city, 
        state, 
        country, 
        zip, 
        adType, 
        activity, 
        whenDate, 
        providerGender, 
        providerAge, 
        providerOffer 
        ) 
       VALUES (
        :gender, 
        :firstName, 
        :lastName, 
        :age, 
        :phone, 
        :contactPreference, 
        :city, 
        :state, 
        :country, 
        :zip, 
        :adType, 
        :activity, 
        :whenDate, 
        :providerGender, 
        :providerAge, 
        :providerOffer 
        );' 
); 

$stmt->bindParam(':gender', $gender); 
$stmt->bindParam(':firstName', $firstName); 
$stmt->bindParam(':lastName', $lastName); 
$stmt->bindParam(':age', $age); 
$stmt->bindParam(':phone', $phone); 
$stmt->bindParam(':contactPreference', $contactPreference); 
$stmt->bindParam(':city', $city); 
$stmt->bindParam(':state', $state); 
$stmt->bindParam(':country', $country); 
$stmt->bindParam(':zip', $zip); 
$stmt->bindParam(':adType:', $adType); 
$stmt->bindParam(':activity', $activity); 
$stmt->bindParam(':whenDate', $whenDate); 
$stmt->bindParam(':providerGender', $providerGender); 
$stmt->bindParam(':providerAge', $providerAge); 
$stmt->bindParam(':providerOffer', $providerOffer); 

$stmt->execute(); 
+0

versuchen, diese, $ sth-> bindParam (': Vornamen', $ Vornamen, PDO :: PARAM_STR); http://php.net/manual/en/pdostatement.bindparam.php – Dave

Antwort

0

Extra-: bei $stmt->bindParam(':adType:', $adType);

Es wäre

$stmt->bindParam(':adType', $adType); 
+1

Ein müde danke. –

+0

Ein guter Grund, sich mit einem ORM zu beschäftigen ;-) – alexw

Verwandte Themen