这是我的问题。
我正在尝试这样做:
$query = "SELECT * FROM dbo.V_Daten_GekPatrone ORDER BY Tagesnummer DESC ";
$sql = $conn->query($query);
try
{
while ($row = $sql->fetch(PDO::FETCH_ASSOC))
{
//Do Something.....
}
} catch (Exception $e)
{
echo $e->getMessage();
var_dump($e);
}
我得到的是执行消息:
SQLSTATE [IMSSP]:类型无效。
和Var_Dump:
object(PDOException)[9]
protected 'message' => string 'SQLSTATE[IMSSP]: Invalid type.' (length=30)
private 'string' (Exception) => string '' (length=0)
protected 'code' => string 'IMSSP' (length=5)
protected 'file' => string 'H:\xampp\htdocs\Projekte\munition\test.php' (length=42)
protected 'line' => int 24
private 'trace' (Exception) =>
array (size=1)
0 =>
array (size=5)
'file' => string 'H:\xampp\htdocs\Projekte\munition\test.php' (length=42)
'line' => int 0
'function' => string 'fetch' (length=5)
'class' => string 'PDOStatement' (length=12)
'type' => string '->' (length=2)
private 'previous' (Exception) =>
object(PDOException)[8]
protected 'message' => string 'SQLSTATE[IMSSP]: Invalid type.' (length=30)
private 'string' (Exception) => string '' (length=0)
protected 'code' => string 'IMSSP' (length=5)
protected 'file' => string 'H:\xampp\htdocs\Projekte\munition\test.php' (length=42)
protected 'line' => int 24
private 'trace' (Exception) =>
array (size=1)
0 =>
array (size=5)
...
private 'previous' (Exception) =>
object(PDOException)[7]
protected 'message' => string 'SQLSTATE[IMSSP]: Invalid type.' (length=30)
private 'string' (Exception) => string '' (length=0)
protected 'code' => string 'IMSSP' (length=5)
protected 'file' => string 'H:\xampp\htdocs\Projekte\munition\test.php' (length=42)
protected 'line' => int 24
private 'trace' (Exception) =>
array (size=1)
...
private 'previous' (Exception) =>
object(PDOException)[6]
...
public 'errorInfo' =>
array (size=3)
...
public 'errorInfo' =>
array (size=3)
0 => string 'IMSSP' (length=5)
1 => int -27
2 => string 'Invalid type.' (length=13)
public 'errorInfo' =>
array (size=3)
0 => string 'IMSSP' (length=5)
1 => int -27
2 => string 'Invalid type.' (length=13)
我的语句在SQL-Server上运行时出现问题,这里是前两个结果:
ID Tagesnummer Menge Zustand Hersteller Gewichtsveraenderung Temp Bemerkung Luftfeuch Luftdruck
5 9338014 568 verschossen CIS State Arsenals -23 18 NULL 40 968
5 9338013 568 verschossen CIS State Arsenals -23 18 NULL 43 968
我在同一个页面上提出了另一个请求,它也没有问题。
这意味着我的数据库连接正常。
那我这个错误到底是什么? 从Execption我会说,Statment($ query)没有传递但是怎么可能?
任何想法? 虽然googeling我发现this看了第一个用户贡献的笔记。但我检查但代码中没有这样的错误。但是想把它留在这里,因为这个错误类型并没有多少。
我还检查过$ sql不是false,所以query()经历了。
答案 0 :(得分:0)
尝试将$query
语句更改为:
$query = "SELECT CAST(col1 AS VARCHAR(255)), CAST(col2 AS VARCHAR(255)), CAST(col3 AS VARCHAR(255)) FROM dbo.V_Daten_GekPatrone ORDER BY Tagesnummer DESC";
当我收到相同的错误时,将选中的列选为varchar
解决了类似的问题,即
SQLSTATE [IMSSP]:类型无效。