我是一個JavaScript新手,我正在寫一個應用程序使用JavaScript與服務器端的PHP,我試圖使用AJAX發送數據到我的PHP腳本。這是我的代碼如下
的Javascript:
$(document).on("click", ".uib_w_18", function(evt)
{
var lecturer = document.getElementById("reg_name").value;
//var lecturer = $("#reg_name").val();
var dept = document.getElementById("reg_dept").value;
var level = document.getElementById("reg_level").value;
var course = document.getElementById("reg_course").value;
var start = document.getElementById("reg_time_1").value;
var ade = 2;
window.alert(lecturer);
var dataString = '?ade=' + ade+'&lecturer='+lecturer+'&dept='+dept +'&level='+level+'&course='+course+'&start='+start;
$.ajax({
type: "GET",
url: 'http://localhost/my_queries.php',
data: dataString,
success: window.alert ("I've been to localhost.")
});
window.alert(dataString);
});
,並在服務器端:
<?php
$dbhost = "localhost";
$dbuser = "root";
$dbname = "myDatabase";
$dbpass = null;
//Connect to MySQL Server
echo "yo";
$con = mysqli_connect($dbhost, $dbuser,$dbpass,$dbname);
$level = $_GET['level'];
$lecturer = $_GET['lecturer'];
$sql = "INSERT INTO level1(message, department)
VALUES ($level,'Jane')";
$sql2 = "INSERT INTO level1(message, department)
VALUES ($lecturer,'Jane')";
if ($con->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}
?>
現在的問題是 '$ SQL1' 成功執行了,但 '$ SQL2' 沒有。我已經有一段時間了,發現腳本中的$ _GET只適用於數值數據。我已經確認問題不在於我的表的數據類型,我可以直接從PHP插入文字字符串,我也確認「dataString」收集數據就像我想要的那樣。 (window.alert(dataString);)顯示正確的輸出。 我覺得我錯過了一些非常基本的東西,但我無法弄清楚它是什麼。我覺得額外的眼睛會有所幫助,任何幫助將不勝感激,謝謝。
[強制SQL注入警告](https://stackoverflow.com/questions/60174/how-can-i-prevent -sql -injection-in-php) – jDo
*「但是'$ sql2'沒有。」* - 簡單;你從來沒有執行過它。如果'$ lecturer'是'VALUES($ lecturer,'Jane')'中的一個字符串,那也會讓你失敗。 –