繁体   English   中英

如何使用查找表将一行插入PHP的MSSQL中?

[英]How can I insert a row into MSSQL with PHP using a lookup table?

我正在创建一个Web应用程序,其中一个数据库接口需要一个查找表。 这是执行SQL的部分:

$A = $_POST['A'];
$B = $_POST['B'];

$tsql= "INSERT INTO INSERT_TABLE (
            A,
            B_Index)
            VALUES
            (?, ?)";
$var = array($A, $B);

我的问题是我不想插入B本身的值,而是在查找表中插入值的索引。 我试图将VALUES行与表连接起来,但是MSSQL似乎不喜欢这样。 有任何想法吗?

编辑:查找表将具有以下形式:

index | value
-------------
   1  |  horse
   2  |   cow
  ... |  ...

如果$ B =='horse',我想插入2而不是'horse'。

EDIT2:我尝试了此查询,但不幸的是它不起作用,但它显示了我想做什么:

INSERT INTO INSERT_TABLE (A, B_Index)
VALUES 
SELECT temp.A, LT.index
FROM (A,B) temp
INNER JOIN LOOKUP_TABLE LT
ON LT.value = temp.B

您可以在INSERT语句中包括SELECT和FROM子句。 这使您可以将记录从LOOKUP_TABLE中提取到INSERT_TABLE中。

INSERT INTO INSERT_TABLE
    (
        A,
        B
    )
SELECT
    ?,
    lt.Value
FROM
    LOOKUP_TABLE AS lt
WHERE
    lt.Index = ?
;    

编辑:我真的应该强调以上是伪代码。 在实践中,问号应替换为值。 有关更多信息,请参见下面@Terminus的评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM