2017-07-19 2 views
0

En utilisant les instructions préparées, j'ai 23 valeurs qui vont être entrées (voir ci-dessous). Est-ce que cela signifie que je dois taper 23? placements ou y at-il une sorte de défaut/sténographie?Valeurs multiples dans les instructions préparées PHP

INSERT INTO table 
      (
      job_id, property_title, property_location, property_price, number_of_bedrooms, 
      number_of_receptions, number_of_bathrooms, epc, train_station_miles, 
      garden_acres, garage, off_road_parking, main_photo, 
      photo_1, photo_2, return_email, office, 
      additional_information, timestamp_added, added_by_user_id, timestamp_updated, 
      updated_by_user_id, status_id 
      ) 
      VALUES (?, ?, ?, ?,......etc x 23) 

Je ne l'ai jamais pensé à cela avant que je ne l'ai utilisé un plus petit nombre de valeurs, mais 23 semble un peu excessif s'il y a une sorte de raccourci

+1

Bien sûr, vous devez lier 23 paramètres si tel est le nombre de paramètres que vous avez – RiggsFolly

+0

vous devez lier 23 paramètres si vous avez 23 paramètres. – Bhavin

+0

Vous pouvez utiliser le paramètre nommé s'il est confus. vérifier la documentation: http://php.net/manual/fr/pdo.prepare.php –

Répondre

2

Cela devrait être approprié pour vous, à la sténographie lier toutes vos entrées dans la requête que je vous recommande ce code:

$placeholders = implode(', ', array_fill(0, 23, '?')); 

$stmt = $connection->prepare("INSERT INTO table 
      (
      ... rest of the statement.... 
      ) 
      VALUES ($placeholders)"); 
+0

@Dan pas de problème, n'oubliez pas de ne jamais mettre dans les variables qui contiennent l'entrée de l'utilisateur dans l'instruction 'prepare', seules les variables codées en dur comme" $ ​​placeholders "pour les instructions SQL courtes sont l'une des exceptions. – MinistryofChaps