奇怪的MySQL问题

时间:2010-10-01 14:30:29

标签: php mysql database insert

所以我使用mysql查询浏览器设置了一个表,现在我正在尝试填充它。但无论我做什么,它都说“成功创建了帐户”,但没有任何东西被添加到数据库中!

我的代码如下:

`

            if($connection)
            {
                $out =
                    "<p>Please wait while we process your request.</p>";

                mysql_select_db(
                    "accounts",
                    $connection
                );

                    // Generate Account Number.
                    $AccountNumber = rand(17000, 904870);

                    // Set Account Values.
                    $GenuineUser = 0;
                    $VerifiedAdvertiser = 0;
                    $DateOfBirth =
                        $_POST["bmoth"] . "/" . $_POST["bday"] . "/" . $_POST["byear"];

                    // MD5 the Account ID.
                    $AccountID = md5($_POST["AccountID"]);
                // Create Advertiser Account.
                mysql_query(
                    "INSERT INTO accounts.advertisers (
                        'Account Number',
                        'Account ID',
                        'First Name',
                        'Last Name',
                        'Date Of Birth',
                        'Email Address',
                        'Phone Number',
                        'Street Address',
                        'City',
                        'Zip Code',
                        'State',
                        'Country',
                        'Genuine User',
                        'Verified Advertiser') VALUES (
                            '".$AccountNumber."',
                            '".$_POST["AccountID"]."',
                            '".$_POST["FirstName"]."',
                            '".$_POST["LastName"]."',
                            '".$DateOfBirth."',
                            '".$_POST["EmailAddress"]."',
                            '".$_POST["PhoneNumber"]."',
                            '".$_POST["StreetAddress"]."',
                            '".$_POST["City"]."',
                            '".$_POST["ZipCode"]."',
                            '".$_POST["State"]."',
                            '".$_POST["Country"]."',
                            '".$GenuineUser."',
                            '".$VerifiedAdvertiser."')
                ");

                // Setup Advertisement Table.


                // Assume account created successfully.
                $out =
                    "<p>Advertiser Account created.</p>";
            }
            else
            {
                die('Oh, @#%#!: ' . mysql_error());
            }
            mysql_close($connection);
        }
        else
        { 
                                    // else, display form. 
                           } ?>

`

有人可以帮我解决这个问题吗?我会感激任何帮助。

谢谢

更新 所以,我已经设法弄清楚会发生什么,多亏了你的所有建议:)事实证明,它没有用,因为我在列名之间使用了空格(即账户ID应该是AccountID)。所以我只是从表列中删除了空格,也从php代码中删除了空格。

感谢大家的帮助!

3 个答案:

答案 0 :(得分:1)

您确实应该检查查询中的错误。甚至是基本的东西:

mysql_query($query) or die(mysql_error());

每次执行mysql函数时都应检查错误,或者有一种捕获异常的方法(如果使用适用的接口,因为默认的mysql函数不会抛出异常)。

可能会搞砸几点。

此外,作为提示,sprintf如果您正在编写查询,则效果非常好。

答案 1 :(得分:1)

您的SQL查询中有错误。您正在获得“帐户创建”,因为您没有对其进行测试。

答案 2 :(得分:0)

所以,我已经设法弄清楚会发生什么,多亏了你的所有建议:)事实证明,它没有用,因为我在列名之间使用了空格(即账户ID应该是AccountID )。所以我只是从表列中删除了空格,也从php代码中删除了空格。

感谢大家的帮助!