Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 转换varchar值时转换失败错误_Php_Sql_Sql Server_Database - Fatal编程技术网

Php 转换varchar值时转换失败错误

Php 转换varchar值时转换失败错误,php,sql,sql-server,database,Php,Sql,Sql Server,Database,添加内部联接后,我不断收到此错误 SELECT character.dbo.user_character.character_name, character.dbo.user_character.wLevel, character.dbo.user_character.byPCClass, character.dbo.user_character.wMapIndex, character.dbo.user_character.wPosX, character

添加内部联接后,我不断收到此错误

SELECT 
   character.dbo.user_character.character_name,
   character.dbo.user_character.wLevel,
   character.dbo.user_character.byPCClass,
   character.dbo.user_character.wMapIndex,
   character.dbo.user_character.wPosX,
   character.dbo.user_character.wPosY,
   ban_info.dbo.account_login.ip
FROM
   character.dbo.user_character
INNER JOIN ban_info.dbo.account_login ON (character.dbo.user_character.wPosY=ban_info.dbo.account_login.ip)
WHERE (character.dbo.user_character.user_no='12100601280065')
错误

Msg 245,16级,状态1,第1行 将varchar值“127.0.0.1”转换为数据类型int时,转换失败


如何修复它?

看看这个。存储IP地址需要一些调整。

您的问题只是将存储在ban_info.dbo.account\u login.IP上的非整数IP地址与存储在character.dbo.user\u character.wPosY上的整数值进行比较,如下所示:

INNER JOIN ban_info.dbo.account_login ON (character.dbo.user_character.wPosY = ban_info.dbo.account_login.ip)

我认为应该在php或db中将IP地址转换为int,然后进行比较。
PHP中有一个函数

我使用的是mssql,而不是MySQL。简单的搜索会让你走得很远。。。。好的,我更改了它,似乎它解决了问题,我将wPosY更改为varchar,它现在可以工作了,没有错误,但它现在给了我空白row@user2875727因为你在比较两个不匹配的值,例如52不等于192.168.0.12。啊,明白了,所以我试着比较两行,比如ban_info.dbo.account_login.ip=ban_info.dbo.account_login.ip,现在所有的行都显示了列中的第一个ip