J'ai ce petit extrait de code:
$sql .= " (cOriginalFilename LIKE %?%)";
et voici la requête complète:
Select cMsgID, cDocType, cOriginalFilename, cSubAddress1, cRecipientID, cSenderID, cStatus, cStatusDateTime From tMessages Where (cOriginalFilename LIKE %?%)
Message d'erreur exact:
Tableau ([0] => tableau ([0] => 42000 [SQLSTATE] => 42000 [1] => 102 [code] => 102 [2] => [Microsoft] [Pilote ODBC 11 pour SQL Server] [ SQL Server] Syntaxe incorrecte près de '@ P1'. [Message] => [Microsoft] [Pilote ODBC 11 pour SQL Server] [SQL Server] Syntaxe incorrecte près de '@ P1'.))
- MSSQL points d'interrogation en PHP sur Windows avec Apache
- Comment se connecter avec SLIM REST api avec le server MS SQL?
- Ignorer la majorité des colonnes des tables du schéma CakePHP
- MSSQL "La string ou datatables binarys sont tronquées." Erreur lors de la mise à jour
- requête sql qui sélectionne des données et trouve des valeurs en double dans les loggings sélectionnés
Comme vous pouvez le voir, il prépare une instruction, mais il me donne une erreur de syntaxe invalide. Lorsque je supprime le% s cela fonctionne. Comment dois-je modifier la syntaxe pour travailler avec les% s? Je n'ai trouvé aucune information sur ce sujet.
note: Ceci est php et mssql
Vous êtes proche – les caractères generics %
ont juste besoin d'être cités pour cela:
Select cMsgID, cDocType, cOriginalFilename, cSubAddress1, cRecipientID, cSenderID, cStatus, cStatusDateTime From tMessages Where (cOriginalFilename LIKE '%' + ? + '%')
Les signes% doivent être placés dans la variable que vous affectez au paramètre, plutôt que dans la requête.