我试图让用户(在我的工作地点)运行一个查询,如果他们选择,将其保存到数据库中,这样他们以后只需单击一次就可以再次运行它(比如他们正在更新一个数据库)。不过,我对此有疑问。简单地运行查询不是问题,但查询不能正确保存。查询是这样的:
LOAD DATA INFILE 'path/to/file/file.txt' INTO TABLE table FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';
如果我在输入查询时转义反斜杠,我可以将其正确保存到数据库中,但这会导致查询在提交时运行不正确。我想知道是否有一种方法可以自动转义反斜杠。或者将这两个功能分开会更容易/更好吗?如果需要更多信息,请告诉我,在此先感谢您。
最佳答案
我做了一些修补,我明白了。这是我想出的解决方案:
首先,我在更新中使用了 str_replace
。
$q = str_replace(array("\t", "\n"),array("\\t","\\n"), $_POST['update']);
然后,我按照建议准备了。
if($stmt = $con->prepare("insert into queries (Query_Name, Query, Description) values (?, ?, ?);")){
$stmt->bind_param('sss', $qn, $q, $qd);
$stmt->execute();
$stmt->store_result();
$stmt->close();
}
最后,我运行了一个mysqli_multi_query
(因为有时提交中有多个查询,这导致它失败)来运行用户输入的查询。
$query = mysqli_multi_query($con, $q);
感谢所有提出建议的人!
关于php - 将mysql查询保存到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26405974/