我曾使用sqlsrv_connect,但将其更改为PDO。
现在,我得到了这个语法错误时,使用奥格。
当我使用sqlsrv_connect时,我可以这样做:
SELECT Order, [Benämning], [Vår ref] FROM table而且起作用了。
现在我想弄清楚如何用PDO来实现它。
所以我试着:
SELECT Order, [Benämning], Antal FROM table并得到了以下错误:
操作数类型冲突:文本与浮动不兼容
我试过:
SELECT Order, Benämning, Antal FROM table我犯了错误:
“�”附近的语法不正确。
在连接中,我添加了utf8:
$sql = new PDO("odbc:Driver=$driver;server=$serverName,$port;Database=$database;ConnectionPooling=0", $uid, $pwd,
array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
)
);现在,当我贴这个的时候我可以说:PDO::MYSQL_ATTR_I.我正在连接到SQL..。不是MYSQL。这会是问题吗?
如果删除“Ben mning”列,只选择没有空格的列,select就能正常工作。
更新
我用sqlsrv代替odbc来工作。
发布于 2022-09-07 07:50:51
在创建PDO实例时,只需使用相同的驱动程序(用于Server的)和相同的连接选项。
<?php
...
try
$sql = new PDO("sqlsrv:Driver=$driver;server=$server,$port;Database=$database", $uid, $pwd);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
...
} catch( PDOException $e ) {
...
}
try {
$sql = "SELECT [Vår ref], ... FROM ...";
$stmt = $conn->prepare($sql);
$stmt->execute();
} catch( PDOException $e ) {
...
}
?>一些补充说明:
[Vår ref]),才能使字符串文本成为有效的Server标识符。PDO::SQLSRV_xxx)添加驱动程序特定的特性。如果连接到PDO::MYSQL_ATTR_INIT_COMMAND实例,则MySQL选项非常有用。https://stackoverflow.com/questions/73631381
复制相似问题