字符串或二进制数据将被截断问题

时间:2019-02-04 04:42:05

标签: php sql odbc

设置一个游戏网站,但是在注册页面上遇到了一个警告:odbc_exec():SQL错误:[Microsoft] [ODBC SQL Server驱动程序] [SQL Server]字符串或二进制数据将被截断。 ,第107行的C:\ root \ htdocs \ sites \ regist.php中的SQLExecDirect中的SQL状态22001 并试图找出解决方法。

尝试将数据库中的[char]更改为[varchar],但未能解决问题。

EXEC [' . $_CONFIG['db_databases']['acc'] . '].[dbo].[usp_createAccount]
@account=\'' . $account . '\', @pw=\''.$md5pw.'\', @email=\''.$email.'\', 
@gefra=\''.$gefra.'\', 
@geant=\''.md5($_CONFIG['security_secretAnswerSalt'].$geant).'\', 
@birthday=\''.date($_CONFIG['web_date_format']['date'], strtotime($birthday)).'\', 
@ip = \'' . $_SERVER['REMOTE_ADDR'] . '\', 
@lang=\'' . $_CONFIG['web_default_lang'] . '\'

1 个答案:

答案 0 :(得分:0)

您的表行小于您要插入的值,因此数据被截断。在不查看实际表DDL和SQL查询的情况下很难分辨出哪些行和哪些值,但是在进行一些调试时,这应该是微不足道的。 为了执行调试和提高代码的可读性,在执行之前将实际的SQL查询转储到变量是很有意义的。