为什么我不能将此语句插入到 SQL 中


Why can't i insert this statement in to SQL

>我有这个PHP代码:

            $uniqueSessionID = 'd41740fd9dc75cb8a3eeee27165d2323';
            $returnUrl = 'http://qapache.us.oracle.com:15671/OA_HTML/OA.jsp?OAFunc=ICX_'nCAT_PUNCHOUT_CALLBACK&OAHP=ICX_POR_HOMEPAGE_MENU&OASF=ICX_CAT_PUNCHOUT_'nCALLBACK&transactionid=1577779317'
            $timestamp = $conn->real_escape_string('2016-02-10 07:57:21');
            $cxmlVersion = $conn->real_escape_string('1.1.007');
            $payloadID = $conn->real_escape_string('20040316032452.913060910.144270@ap6172rt.us.oracle.com');
            $sql2 = "INSERT INTO return_cart_url (`sessionid`, `timestamp`, `version`, `return_url`, `payloadID`)
                        VALUES ('{$uniqueSessionID}','{$timestamp}', '{$cxmlVersion}' '$returnUrl', '{$payloadID}')";
            if ($conn->query($sql2) === TRUE) {
                echo "New record created successfully";
            } else {
                echo "Error: " . $sql2 . "<br>" . $conn->error;
            }

我收到此错误:列计数与第 1 行的值计数不匹配

我所有的列都是瓦尔查尔。一开始我只有 uniqueSessionID 和 returnURL 列,有了这两个列它就可以工作了。当我添加时间戳,cxmlVersion和payloadID时,它发生了。

谁能解释为什么会这样?

你忘记了 1 个逗号:

 '{$cxmlVersion}','$returnUrl'

你忘记了cxmlVersion 之后的一个,

$sql2 = "INSERT INTO return_cart_url (`sessionid`, `timestamp`, `version`, `return_url`, `payloadID`)
                    VALUES ('{$uniqueSessionID}','{$timestamp}', '{$cxmlVersion}', '$returnUrl', '{$payloadID}')";

我猜这是因为您在返回 URL 的值定义中缺少括号,并且在 cxmlVersion 之后缺少冒号。

VALUES ('{$uniqueSessionID}','{$timestamp}', '{$cxmlVersion}' '$returnUrl', '{$payloadID}')";

成为:

VALUES ('{$uniqueSessionID}','{$timestamp}', '{$cxmlVersion}', '{$returnUrl}', '{$payloadID}')";