我正在使用带有PHP的Oracle 11.2,现在当我尝试使用TIMESTAP列插入一些信息时发生了一个奇怪的错误。
这是我在items
表中插入行的PHP方法/函数:
public function insert_task($data = [])
{
return oci_execute(oci_parse($this->conn, "INSERT INTO items (ITEM_AUTHOR_ID, ITEM_TITLE, ITEM_DESCRIPTION, ITEM_TIME_DATE, ITEM_STATUS)
VALUES ('".$data['auid']."', '".$data['tasktitle']."', '".$data['taskdescription']."', TO_TIMESTAMP('".$data['taskdate']."', 'MM/DD/YYYY HH:MI AM'), 0)"));
}
为了测试上面的方法,我使用了这样的一些虚拟数据,它可以工作。
$this->oracledb->insert_task([
'tasktitle' => 'Lorem ipsum dolor sit amet',
'taskdescription' => 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Architecto tempore sit, harum suscipit eum consequuntur.',
'taskdate' => '01/02/2016 8:00 PM',
'auid' => '1'
]));
上面的测试成功地将数据行插入到items
表中,但是当我尝试使用Web表单插入数据时发生了一个奇怪的错误!
这是截图;在顶部,您可以看到从提交中收到的所有信息。
并发生此错误:
oci_parse():ORA-01756:引用字符串未正确终止
我在将查询执行之前打印到oracle服务器上,看起来很好!
INSERT INTO项目(ITEM_AUTHOR_ID,ITEM_TITLE,ITEM_DESCRIPTION,ITEM_TIME_DATE,ITEM_STATUS) 价值观('1','测试那里','Lorem ipsum dolor ... eum consequuntur。',TO_TIMESTAMP('01 / 02/2016 8:00 PM','MM / DD / YYYY HH:MI AM'), 0)
起初它似乎是一个addslashes()工作,但它也失败了!这有什么不对吗?