在数据库mysql中获取已保存的查询

时间:2014-06-08 19:44:56

标签: php mysql sql

我遇到了一个挑战,我将查询保存到数据库中。 在我的项目中,我想在数据库中保存mysql更新查询,当另一个操作在另一个页面上运行时,我得到该查询并通过我的函数传递它并运行。在得到它之后它是空的。以下是我到目前为止所做的工作。

//将查询保存在数据库中

$query = array();
$query['approved'] = "UPDATE payment SET pm_status = 'Approved' WHERE id = '69'";
$query['approved2'] = "UPDATE member SET pay_date = NOW())";

// i den serialize和addslashes,以便将其保存在数据库中

$tosave = addslashes(serialize($query));
$sql = "INSERT INTO trans (saved_query) VALUES ($tosave)";

//我将$ tosave保存到数据库中,我检查了它并保存了它。 在我想要使用它的页面上,每次我得到值并反序列化时,它返回为空,例如在选择行的值后

$toprocess = unserialize($query['saved_query']);
echo $toprocess['approved'];

它返回一个空值,当我在查询中运行它时,它不会运行。

但是如果我直接回显而没有反序列化,它会忽略其中的值

echo $query['saved_query'];

请帮助我在这里遗漏一些东西。感谢

我没有阻止sql注入。我已经不是那样了。我只想运行保存在数据库中的sql。这与预防mysql注入的答案不同。感谢

1 个答案:

答案 0 :(得分:0)

您的查询中存在错误

$query['approved2'] = "UPDATE member SET pay_date = NOW())";

有一个额外的括号 now()功能。