Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MSSQL错误“;无效的对象名称";当我向查询中添加字段时?_Php_Sql Server_Tsql - Fatal编程技术网

Php MSSQL错误“;无效的对象名称";当我向查询中添加字段时?

Php MSSQL错误“;无效的对象名称";当我向查询中添加字段时?,php,sql-server,tsql,Php,Sql Server,Tsql,我有一个INSERT查询,效果很好,但当我添加一个额外字段时,我得到了非常有用的结果: 无效的对象名称“优化” 优化是表名。查询如下。。。我完全不明白这为什么行不通。如果我将查询剪切并粘贴到MSSQL Management Studio中,查询工作正常 INSERT INTO [optimizations] ([opt_date],[opt_concept_id],[opt_pallet],[opt_turnable], [opt_sideupok],[opt_endupok

我有一个INSERT查询,效果很好,但当我添加一个额外字段时,我得到了非常有用的结果:

无效的对象名称“优化”

优化是表名。查询如下。。。我完全不明白这为什么行不通。如果我将查询剪切并粘贴到MSSQL Management Studio中,查询工作正常

INSERT INTO [optimizations] 
    ([opt_date],[opt_concept_id],[opt_pallet],[opt_turnable],
     [opt_sideupok],[opt_endupok],[opt_flatok],[opt_notstickingout],
     [opt_notinoverhang],[opt_itemsloaded],[opt_loadedweight],
     [opt_pweightutil],[opt_pvolumeutil],[opt_request_xml],
     [opt_response_xml],[opt_images],[opt_primary_stage_id]) 
VALUES 
     (GETDATE(),'775','20ft','true','false','false','true',
      'true','true','10','5952.6','18.6','48.9',
      '<xml><herpa><derpa>xml</derpa></herpa></xml>',
      '<xml><herpa><derpa>xml</derpa></herpa></xml>',
      'img1.jpg,img2.jpg,img3.jpg','98');

编辑:修复了XML,使其具有适当的括号并添加了工作查询。

添加字段本身不会导致失败:有一个有效的原因

您说它在SSMS中运行OK,然后它显示问题在PHP或调用中

第一个想法:

  • 命令有多长。它在PHP中被截断了吗?这是动态SQL IRL吗

  • 客户端的用户上下文是否相同?例如,您可能在两个不同的模式中拥有相同的表,并且具有不同的权限

  • 连接中存在错误的数据库。SELECT DB_NAME()表示什么?听起来很明显,但没有对象=不存在。不要忽略这个想法,并假设它是正确的上下文:检查


对不起,我没有答案,但您的两个XML示例在“我们应该知道的任何触发器”之后缺少“>”?我不知道这是成功的查询还是失败的查询。[opt_primary_stage_id]已经是查询的一部分,因此如果您再次添加它,这可能就是问题所在。@changokun我刚刚添加了工作版本Use SQL Server Profiler(或者使用express edition之类的免费替代版本)为了捕获正在执行的实际查询-它可能不同/在执行前已被更改。这是动态SQL…但我打印了SQL,以便在执行前在运行时检查它。如果在运行时失败,则在复制/粘贴到SSMS时运行良好。上下文相同,只有1个数据库和1个ta很可能它可能正在与…进行交互…但是有两个不同的用户。如果在我给字段传递空值时查询不起作用,我会接受这是一个合理的原因。不过感谢您的帮助…我认为这只是我永远不会真正理解的事情之一。好的,首先我看了一下您提供的解决方案。。。最后单击的是运行selectdb_NAME()的建议.BINGO!尝试写入另一个数据库/连接!实际问题是,当我为DB连接执行include时…我使用了include_一次,而不仅仅是include。因为我需要的DB连接以前包含过一次…它跳过了它,并将其保留在以前的DB上下文中。GBN,你就是那个人!
INSERT INTO [optimizations] 
    ([opt_date],[opt_concept_id],[opt_pallet],[opt_turnable],
     [opt_sideupok],[opt_endupok],[opt_flatok],[opt_notstickingout],
     [opt_notinoverhang],[opt_itemsloaded],[opt_loadedweight],
     [opt_pweightutil],[opt_pvolumeutil],[opt_request_xml],
     [opt_response_xml],[opt_images])
VALUES 
     (GETDATE(),'775','20ft','true','false','false','true','true',
      'true','10','5952.6','18.6','48.9',
      '<xml><herpa><derpa>xml</derpa></herpa></xml>',
      '<xml><herpa><derpa>xml</derpa></herpa></xml>',
      'img1.jpg,img2.jpg,img3.jpg');