【问题标题】:SQL Error: 1036 - Illegal VariableSQL 错误:1036 - 非法变量
【发布时间】:2014-01-30 01:25:42
【问题描述】:

我不断收到SQL Error: 1036 - illegal variable name/number,但我不知道为什么。

数据库具有以下所有字段,拼写完全相同,表单输入也是如此。我尝试将它们一一删除以查找哪个是“非法变量”,但它似乎不喜欢它们中的任何一个。

case 'DATABASE':

$args[] = array('database_work_location', $in['database_work_location']);
$args[] = array('previous_work_point', $in['previous_work_point']);
$args[] = array('requested_due_date', $in['requested_due_date']);
$args[] = array('unit_request', $in['unit_request']);
$args[] = array('primary_purpose_descr', $in['primary_purpose_descr']);

$DB->query("
    INSERT INTO request_database
    (
    database_work_location
    ,previous_work_point
    ,requested_due_date
    ,unit_request
    ,primary_purpose_descr
    ) 
    VALUES (
    :database_work_location
    ,:previous_work_point
    ,TO_DATE(:requested_due_date, 'MM-DD-YYYY')
    ,:unit_request
    ,:primary_purpose_descr
    )
    "
    ,$args
    );
break;

【问题讨论】:

  • 下面的问题解决了@navlag 吗?
  • @AlexPoole,我在上面的问题描述中添加了缺少的代码。如果您看到任何有趣的事情,请告诉我。谢谢。
  • 我对PHP不是很熟悉,但是如果你想使用绑定变量,你不需要解析语句吗?看起来它可能试图将:unit_request 视为名称而不是绑定,但不确定。看起来您正在用每个作业替换 $args,但又不确定。

标签: php sql oracle oracle10g


【解决方案1】:
You missed the semi-Colon at the end.TRy this

INSERT INTO request_database
(
database_work_location
,previous_work_point
,requested_due_date
,unit_request
,primary_purpose_descr
) 
VALUES 
(
:database_work_location
,:previous_work_point
,TO_DATE(:requested_due_date, 'MM-DD-YYYY')
,:unit_request
,:primary_purpose_descr
);

【讨论】:

  • ';'在PHP中,我更新了上面的代码,但它不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-14
  • 1970-01-01
相关资源
最近更新 更多