基本上我通過Ajax請求發送一些數據到一個php腳本,它應該運行一個查詢來更新數據庫中的一個表。PHP查詢返回'轉換varchar值時轉換失敗'
但是它一直走的是文字和音符ID我想沒問題: 所以我知道它的發送我想要的數據,但該表只是心不是更新(它沒有從數據的話「附加文本」我派有)
現在在Firefox的開發窗口,網絡標籤下,並在預覽我有: 這似乎是扔SQL錯誤?
這是PHP腳本從請求運行:
<?php include 'connectionDetails.php'; ?>
<?php
if (isset($_POST['noteid1'], $_POST['notetext1']))
{
$noteid2 = $_POST['noteid1'];
$notetext2 = $_POST['notetext1'];
$stmt = "UPDATE Notes SET Note = ? WHERE NoteID = ?";
$params = array($noteid2, $notetext2);
$stmt = sqlsrv_query($conn, $stmt, $params);
if ($stmt === false)
{
die(print_r(sqlsrv_errors(), true));
}
}
else
{
echo "No Data";
}
?>
,這是請求本身:
function submitNoteText()
{
var noteid = <?php if(isset($_POST['noteid'])){ echo $_POST['noteid'];} ?>;
var notetext = $("#ta1").val();
if(noteid == ''||notetext == '')
{
alert("NoteID or Text is blank");
}
else
{
$.ajax({
type: "POST",
url: "submitNoteText.php",
dataType: 'json',
data: {noteid1: noteid, notetext1: notetext},
cache: false,
success: function(result){
alert("Success");
}
});
}
return false;
};
所以我猜這個原因它不更新該表的錯誤,所以我的問題是我如何安全地在php中編寫查詢而不會出現該錯誤?
這是一個SQL問題。您發送的值無法通過SQL轉換爲「VARCHAR」。因爲值超出了字段大小的邊界,或者包含無效字符 –
嗯試過在SQL本身運行更新並且沒有錯誤,它的一個VARCHAR(MAX)所以沒有字符限制的風險 – user7409253
顯示你的列設計 – Gert