我正在尝试执行SQL查询但它不起作用。
$sql = "SELECT top 5 AccountDocument from web.Preoffers_new where AccountDocument = 'xxxxxxxx'";
$stmt = $db->prepare($sql);
$stmt->execute();
if ($data = $stmt->fetch()) {
do {
echo $data['AccountDocument'] . '<br>';
} while ($data = $stmt->fetch());
} else {
echo 'Empty Query';
}
这很有效,并向我展示了结果。
但是这个:
$sql = "SELECT top 5 Document from Companies where Document = 'xxxxxxxx'";
$stmt = $db->prepare($sql);
$stmt->execute();
if ($data = $stmt->fetch()) {
do {
echo $data['Document'] . '<br>';
} while ($data = $stmt->fetch());
} else {
echo 'Empty Query';
}
直接转到空查询。但事实并非如此,因为如果我在SQL中执行该查询,它就能完美运行。
我看到的唯一不同的是第一个查询转到数据库中的表,第二个查询转到一个视图...
有些线索可能是这个吗?
SET
ANSI_NULLS,
QUOTED_IDENTIFIER,
CONCAT_NULL_YIELDS_NULL,
ANSI_WARNINGS,
ANSI_PADDING
ON;
更新----&gt;
我设置属性 PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION ,看看服务器是否显示了我的东西,我收到了这个:
错误conectando con la base de datos:SQLSTATE [HY000]:常规错误:1934常规SQL Server错误:检查来自SQL Server的消息[1934](严重级16)[从公司文档中选择前5个文档='xxxxxxxx']
我检查了SQL中的错误,我得到了这个:
%ls失败,因为以下SET选项的设置不正确:'%。* ls'。验证SET选项是否适用于%S_MSG ..
任何人都知道为什么我不能在视图中进行查询?
感谢您阅读我:)
答案 0 :(得分:0)
正如我在代码中看到的那样,您使用“Document”而不是“AccountDocument”,因此将AccountDocument替换为Document。
$sql = "SELECT top 5 Document from Companies where Document = 'xxxxxxxx'";
$stmt = $db->prepare($sql);
$stmt->execute();
if ($data = $stmt->fetch()) {
do {
echo $data['Document'] . '<br>';
} while ($data = $stmt->fetch());
} else {
echo 'Empty Query';
}