我正在使用这个更新声明
$sql = "update questions set response = ?, `check` = ? where questionID = ? && starID = ?";
$qc = $pdo_conn->prepare($sql);
$qc->execute(array($_GET['response'], $_GET['check'], $_GET['questionID'], $_SESSION['starid']));
但是当响应值中有一个&
时,例如pop and r&b
,它最终在数据库中为pop and r
。
此外,如果有换行符,它会删除所有空格,例如:
Bob
Jim
最终在数据库中为BobJim
数据库中的响应类型是varchar(10000)
这是获取$_GET['response']
值的javascript代码
var html = '';
$(document).ready(function(){
$(".save_btn").live('click', function() {
$('.response').each(function(){
//alert($(this).attr('id'));
//alert($(this).val());
if ($(this).val() == '') {
html = $.ajax({
url: "response.php?questionID=" + $(this).attr('id') + "&response=" + $(this).val() + "&check=0",
async: false
}).responseText;
}
if ($(this).val() !== '') {
html = $.ajax({
url: "response.php?questionID=" + $(this).attr('id') + "&response=" + $(this).val($POST['response']) + "&check=1",
async: false
}).responseText;
}
});
alert(html);
location.reload();
});
})
if 的这一部分是这种情况下的重要部分:
if ($(this).val() !== '') {
html = $.ajax({
url: "response.php?questionID=" + $(this).attr('id') + "&response=" + $(this).val($POST['response']) + "&check=1",
async: false
}).responseText;
}
有想法该怎么解决这个吗?