PHP mysql_query语法错误?

时间:2014-04-15 17:21:05

标签: php mysql sql

我无法通过SQL查询来访问数据库。我正在用if ($sql) {echo "success";} else {echo "error";}检查这一点,并且我一直得到"错误"。我查询之前的代码似乎都有效。如果查询语法是正确的,那么我可能忽视的潜在绊倒可能是什么?以下是有问题的代码:

$sql = mysql_query(
    "INSERT INTO monthly_balances (
        bal_id,
        account_id,
        bal_date,

        bal_month_sales,
        bal_month_returns,
        bal_month_net,
        bal_month_coop,

        bal_YTD_sales,
        bal_YTD_returns,
        bal_YTD_net,

        bal_lastYTD_sales,
        bal_lastYTD_returns,
        bal_lastYTD_net
    ) 
    VALUES (
        DEFAULT,
        '$account_id',
        '$bal_date',

        '$bal_month_sales',
        '$bal_month_returns',
        '$bal_month_net',
        '$bal_month_coop',

        '$bal_YTD_sales',
        '$bal_YTD_returns',
        '$bal_YTD_net',

        '$bal_lastYTD_sales',
        '$bal_lastYTD_returns',
        '$bal_lastYTD_net'
    )
 ");


if($sql) {
    echo 'success';
}
else {
    echo 'error';
}

谢谢

1 个答案:

答案 0 :(得分:2)

来自 docs

  

MySQL拒绝任何尝试创建的INSERT或UPDATE操作   如果没有匹配的候选项,则子表中的外键值   父表中的键值。

基本上,您在account_id中输入的monthly_balances的值不在表account_id的{​​{1}}中。

当一列声明为引用另一个表中某些列的外键时,外键列不能包含父列之前的值。

注意:

Please, don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial