Actuellement, je soumets des soumissions de formulaire peignant pour tenir compte des guillemets simples & autres déchets.Placeholders utilisant les pilotes ODBC génériques
$form_field_value= str_replace("'", "''", stripslashes($form_field_value));
Il est de préparer la valeur pour l'insertion en utilisant:
$insert_sql = "insert into table (field) values ('".$form_field_value."')";
odbc_exec($conn, $insert_sql);
Essentiellement, je veux utiliser ces espaces réservés pour les instructions insert/mise à jour.
J'ai essayé de définir $par1
et $par2
comme littéraux et l'exécution de cette
$insert_sql = "insert into table (field,txt) values (?,?)";
odbc_exec($conn, $insert_sql, $par1, $par2);
Il a échoué et m'a donné cette erreur:
Attention: odbc_exec() [function.odbc-exec]: erreur SQL : [Microsoft] [COUNTRY ODBC SQL Server] COUNT champ incorrect ou erreur de syntaxe, l'état SQL 07001 dans SQLExecDirect dans test.php sur la ligne 10
La ligne 10 est l'instruction exec.
Je ne peux pas trouver la syntaxe pour utiliser avec ce pilote placeholders odbc. Aucune suggestion?
La variable de connexion $conn
fonctionne correctement.
EDIT:
La dernière tentative échoue toujours - odbc_execute() est une fonction non définie. Je dois utiliser odbc_exec()
$par1="eggs";
$par2="milk";
$insert_crs = "insert into table (field,txt) values (?,?)";
$stmt = odbc_prepare($conn, $insert_sql);
odbc_exec($stmt, array($par1, $par2));
merci ... ouais je parcourais ce site et a terminé la navigation en voyant odbc_execute plutôt que d'essayer exec .... maintenant – CheeseConQueso
pas bon ... J'ai essayé exec et exécuter ... je pensais que ce serait le cas – CheeseConQueso
Pourriez-vous poster votre code changé? Et obtenez-vous toujours la même erreur? Et, dans le cas où vous copiez/collé mon code, j'ai fait une erreur, moi-même - correction momentanée ... – atk