【问题标题】:Why is my SQL View empty?为什么我的 SQL 视图是空的?
【发布时间】:2015-07-30 00:28:59
【问题描述】:

我检查了我的数据库,并使用预期的结构创建了视图,但它是空的,没有行。

$view= $connexion->prepare("CREATE VIEW MP1 AS SELECT * FROM occupation_data WHERE onetsoc_code IN (".implode(',',$tupleasup).")");

这是我的数组要查找的内容:

$tupleasup= array('19-1041.00','19-1042.00');

我使用的唯一“奇怪”的是:How to use php array with sql IN operator?

谢谢

【问题讨论】:

  • 以及视图经过php处理后如何看?
  • 它具有预期的结构,包含所有好的列,但它是空的
  • 有什么错误吗?检查他们?您使用哪个 MySQL API 连接?等等。?似乎您有语法错误并且没有检查它们。如果使用mysqli_,则在查询中使用php.net/manual/en/mysqli.error.php。很难说你是使用那个还是 PDO setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)

标签: php sql


【解决方案1】:

你忘了开始和结束单引号'

$view= $connexion->prepare("CREATE VIEW MP1 AS SELECT * FROM occupation_data WHERE onetsoc_code IN ('".implode('\',\'',$tupleasup)."')");

如果您回显您的查询,它将是这样的

 CREATE VIEW MP1 AS SELECT * FROM occupation_data WHERE onetsoc_code IN (date1','date2);

这是一个错误的语法,所以我添加了单引号来完成您的查询

【讨论】:

  • 如果此答案合适,请接受答案。很高兴为您提供帮助:)
【解决方案2】:

你的内爆应该是这样的:

$view= $connexion->prepare("CREATE VIEW MP1 AS SELECT * FROM occupation_data WHERE onetsoc_code IN ('".implode("','",$tupleasup)."')");

(每个项目都应该用引号括起来)

【讨论】:

    猜你喜欢
    • 2015-04-01
    • 2017-03-04
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 2017-11-21
    • 2012-03-05
    • 2012-12-08
    相关资源
    最近更新 更多