我对Chrome-> PHP-> SQL Server处理项目符号的方式感到困惑。似乎子弹符号在三者中的编码方式不同,SQL Server无法插入包含项目符号的字符串。
假设我的表单中有一个输入文本框字段,其中maxlength = '50',而我正在使用chrome来填充它。我用最多49个字符的字符串填充文本框,外加一个项目符号。 Chrome将其解释为50个字符并允许我继续前进;但是,当我通过PHP提交明确地使用$ _POST ['string']执行我的INSERT查询(没有任何清理/截断/转换)时,SQL Server会失败。
SQLSTATE [22001]:[Microsoft] [SQL Server的ODBC驱动程序11] [SQL 服务器]字符串或二进制数据将被截断。
我认为这是因为SQL Server将子弹解释为多个字符,而不是Chrome解释它的方式。什么是良好的做法或标准的经验法则来解决这个问题?
注意:我正在运行PHP 5.4.24和SQL Server 2008 R2。