旧的PHP"mssql"扩展仅支持最大255字节的VARCHAR.这是一个已知的限制,这就是为什么Microsoft一直在开发一个新的PHP扩展来支持现代SQL Server版本.
一种解决方法是将该列的存储声明为NVARCHAR,但是当您从PHP查询时,使用CAST将其转换为NTEXT.然后可以返回全长.
另一种选择是将列保存为NTEXT,但仅book_id
将GROUP 计数存入子查询:
SELECT bk.*, bc.books_sold FROM books_book bk INNER JOIN (SELECT bk2.book_id, COUNT(*) books_sold FROM books_book bk2 INNER JOIN orderdetails_orddetails ord ON (bk2.id_book = ord.id_book_orddetails) GROUP BY bk2.book_id) bc ON (bk.book_id = bc.book_id);