在将varchar值转换为数据类型int并连接两个表时,MS SQL转换失败


MS SQL Conversion failed when converting the varchar value to data type int and JOIN two Tables

我得到一个错误说:"转换失败时,将varchar数据类型转换为int" 当我尝试运行下面的代码,但我已经将ASSIGNED_ID转换为php中的int ?

$row["ID"]数字是小它的2,所以没有,或类似的东西,我甚至添加了替换代码来删除任何空格,但它仍然不起作用。而且两个表有相同的ID(数据类型:int)

我也想知道我如何使用他们的ID (int)连接两个表:T_ASSIGNEDT_EQ,他们都有它,它总是匹配

// SEND A SELECT QUERY TO MSSQL
$query = mssql_query('SELECT ID FROM [TestT].[dbo].[T_ASSIGNED] WHERE [A_T_N]=''$contact_lastname''');
$row = mssql_fetch_array($query);
if (strlen($row["ID"])<>0) {
// REMOVE ANY SPACES AND CONVERT ID TO INT
$ASSIGNED_ID = intval(str_replace(" ", "", $row["ID"]));
}else{
// IF NO ID IS FOUND MAKE ID BE ZERO
$ASSIGNED_ID =intval('0');
};

// FREE THE QUERY RESULT
mssql_free_result($query);
// ECHO THE ID
ECHO("TEST ID: ".$ASSIGNED_ID);
// GET THE T NUMBER IN THE T_EQ LOCATION
$query = mssql_query('SELECT EQ_T_N FROM [TestT].[dbo].[T_EQ] WHERE [ID]=''$ASSIGNED_ID''');
$row = mssql_fetch_array($query);
// ECHO THE EQ_T_N
echo(">".$row["EQ_T_N"]."<");
// FREE THE QUERY RESULT
mssql_free_result($query);

谢谢你的帮助。

使用

mssql_query('SELECT EQ_T_N FROM [TestT].[dbo].[T_EQ] WHERE [ID]="' . $ASSIGNED_ID .'"');

使用单引号,你使用的是$ASSIGNED_ID的文本,而不是变量

的值