7
votes

Erreur SQL Server 1934 se produit sur l'insertion à la table avec la colonne calculée PHP / PDO

Après avoir ajouté une colonne calculée à une table dans SQL Server 2005, je reçois le message suivant sur insert , uniquement via PHP (à l'aide de PDO). Il fonctionne bien dans SQL Server Manage Studio.

Pour vous assurer que tout est correct, je configurais une trace avec le profileur SQL Server et copier / coller l'instruction insertion dans SQL Server Dissement Studio. Il s'est bien déroulé dans SSMS, mais continue d'échouer dans PHP.

Erreur d'erreur Ajout de contact: SQLSTATE [HY000]: Erreur générale: 1934 Général SQL Erreur de serveur: vérifiez les messages du serveur SQL [1934] (gravité 16) [(null)]


0 commentaires

3 Réponses :


11
votes

révèle que le problème devait faire avec les paramètres définis. J'ai utilisé le code ci-dessous obtenu à partir de ici . Pour déterminer quelles options ont été définies dans SQL Server Management Studio (où l'insert fonctionnant). Ensuite, placez chacun de ceux-ci dans un EXED avant mon relevé d'insertion, les choses fonctionnent à nouveau. Je n'avais pas besoin de conserver toutes les options, donc ci-dessous, je montrais ceux qui étaient tenus de le faire fonctionner.

$dbPDO->exec("SET ANSI_WARNINGS ON");                                                                               
$dbPDO->exec("SET ANSI_PADDING ON");
$dbPDO->exec("SET ANSI_NULLS ON");
$dbPDO->exec("SET QUOTED_IDENTIFIER ON");
$dbPDO->exec("SET CONCAT_NULL_YIELDS_NULL ON");


0 commentaires

6
votes

Suivre @kackleyjm Réponse J'ai essayé d'activer les autres options possibles.

J'ai fini par: P>

SET ANSI_WARNINGS ON
SET ANSI_PADDING ON
SET CONCAT_NULL_YIELDS_NULL ON


2 commentaires

Vous devrez peut-être écrire les paramètres à l'aide de PHP. Ex: $ dbpdo-> exec ("définir ansi_warnings sur");


Où vais-je mettre ça? Sur un fichier spécifique ou sur le serveur?



0
votes

J'ai trouvé que ce problème se pose lorsque vous faites une insertion en vrac ou une mise à jour à l'aide de XML dans SQL Server . J'ai trouvé que ce problème concerne le problème de l'indexation dans une table. Vérifiez xxx

en haut du corps de la procédure. Cela résoudra l'erreur "1934" .


0 commentaires