希望只是一个快速的,我可以看到我的问题的各种答案,但发现很难在我的代码中实现。 正如标题所说,在使用ajax和javascript将数据发布到MySQL时,希望允许撇号。刚刚提交数据时,它不起作用。
希望有人可以最终确定代码以使其工作。
HTML
<!-- Modal - Add New Record/Info -->
<div class="modal fade" id="add_new_record_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Add some useful information</h4>
</div>
<div class="modal-body">
<div class="form-group">
<label for="add_info">Add Info</label>
<input type="text" id="info" class="form-control"/>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-primary" onclick="addRecord()">Add Record</button>
</div>
</div>
</div>
</div>
<!-- // Modal -->
的Javascript
// Add Record
function addRecord() {
// get values
var info = $("#info").val();
// Add record
$.post("ajax/addRecord.php", {
info: info
}, function (data, status) {
// close the popup
$("#add_new_record_modal").modal("hide");
// read records again
readRecords();
// clear fields from the popup
$("#info").val("");
});
}
Ajax - addRecord.php
<?php
if(isset($_POST['info']))
{
// include Database connection file
include("db_connection.php");
// get values
$info = $_POST['info'];
$query = "INSERT INTO useful_info(info) VALUES('$info')";
if (!$result = mysql_query($query)) {
exit(mysql_error());
}
echo "1 Record Added!";
}
?>
通过阅读网站上的其他问题,我可以使用get_magic_quotes_gpc
或创建JSON对象并使用JSON.stringify
。只是想知道如何最好地实现这一点。
任何帮助都将不胜感激。
答案 0 :(得分:0)
根据@ JimL&#39; comment,您应切换到 mysqli 或 PDO 并使用参数化查询,因为mysql扩展名为{ {3}}
例如(PDO):
$stmt = $pdo->prepare("INSERT INTO useful_info(info) VALUES(?)");
if (!$stmt->execute([$info])) {
exit(implode(" :: ", $stmt->errorInfo()));
}
答案 1 :(得分:0)
正如其他人所提到的,mysql_
功能和get_magic_quotes_gpc
都过时了。
我知道这一开始可能会让人感到压力,但我建议this wiki,当我自己从没有预备语句的mysqli_转换为使用预准备语句的PDO时,这确实帮助我走上了正确的轨道。
你不会后悔,它更安全,更容易使用,只要你正确使用它,你就不必使用撇号等。你只需按原样在数据库中插入数据即可就sql注入而言,这很好(并不意味着你在显示它们时不必关心用户输入的数据,但这是另一回事。)