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

时间:2016-02-10 07:09:56

标签: php mysql

我有这个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行的值计数不匹配

我的所有列都是varchar。在开始时我只有列uniqueSessionID和returnURL,并且这两个有效。它发生在我添加时间戳,cxmlVersion和payloadID。

任何可以解释我为什么会这样的人?

3 个答案:

答案 0 :(得分:6)

你忘了1个逗号:

 '{$cxmlVersion}','$returnUrl'

答案 1 :(得分:2)

你在cxmlVersion

之后忘记了一个,
$sql2 = "INSERT INTO return_cart_url (`sessionid`, `timestamp`, `version`, `return_url`, `payloadID`)
                    VALUES ('{$uniqueSessionID}','{$timestamp}', '{$cxmlVersion}', '$returnUrl', '{$payloadID}')";

答案 2 :(得分:0)

我猜这是因为你错过了返回Url的值定义中的括号,并且在cxmlVersion之后有一个缺少的冒号。

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

变为:

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