我使用IIS的SQLSRV驱动程序,以便我可以连接到PHP中的MS SQL服务器。奇怪的错误“sqlsrv_fetch_array():16是不是有效的ss_sqlsrv_stmt资源”,因为ReturnDatesAsStrings
我已经成功地转换了很多我原来mysql_代码和所有进展顺利,直到我试图从数据库中选择一些日期时间字段。他们赶回来,在PHP Date对象而不是字符串,我发现这是增加这个到连接阵列修复:
“ReturnDatesAsStrings” => 1
因为这样做,当尝试,虽然我的代码被打破填充我的记录:
function row_read($recordset) {
if (!$recordset) {
die('<br><br>Invalid query :<br><br><bold>' . $this->sql . '</bold><br><br>' . sqlsrv_error());
}
$rs = sqlsrv_fetch_array($recordset);
return $rs;
}
的错误是:sqlsrv_fetch_array():16是不是有效的ss_sqlsrv_stmt资源
有帮助在谷歌的错误这样的小金额,所以这是我唯一的机会!我只是不明白。
row_read从内而被称为:而($行= $ DB-> row_read($ RS)){
任何想法?
只是为了增加更多的代码和逻辑 - 我做我的所有订单的简单选择,然后为它遍历他们,我做的是另2 SELECT的Orders表,然后客户表。它倒下时,我尝试这些额外的2“获取”:
$this->db->sql = "SELECT * FROM TicketOrders";
$rs = $this->db->query($this->db->sql);
$this->htmlList->path("skin/search.bookings");
if ($this->db->row_count != 0) {
while ($row = $this->db->row_read($rs)) {
// Load the order row
$this->TicketOrders->get($this->db, $row['Id']);
// Load the customer row
$this->Customers->get($this->db, $row['CustomerId']);
感谢您的回答,但是当我回声出2我的SQL的语句然后将它们粘贴回SQL Studio,它们执行得很好? 选择ID,客户ID,NightId,ClubName,NightName,NightDate,数量TicketType,价钱,CancelledDate,订购日期,QuoteNumber,已完成,状态,txn_id,EmailSent FROM TicketOrders其中id = 1086730 选择ID,名字,姓氏, EmailAddress,订阅从客户那里Id = 10068 –
@詹姆斯威尔逊:也许你可以使用'sqlsrv_errors()'得到错误的细节。 – xdazz
嗯,不是细节:sqlsrv_fetch_array():16是不是一个有效的ss_sqlsrv_stmt资源?我已经尝试过在那条线之前和之后的呼应,它是空的 –