我絕對是jQuery和ajax的新手。目前我正在嘗試從一個JavaScript文件從我的本地sql服務器上創建一個表,我將該語句發佈到.php文件以執行該語句。使用jQuery創建數據庫表的麻煩ajax
js文件:
function executeStatement(sqlStatement){
$.ajax({
type: "post",
data: sqlStatement,
cache: false,
url: "api.php",
dataType: "text",
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
},
success: function()
{
alert ("Success!!");
}
});
}
PHP文件:
require_once('PhpConsole.php');
PhpConsole::start();
debug('HERE!!!');
$sqlStatement = $_POST['sqlStatement'];
$host = "*****";
$user = "*****";
$pass = "*****";
$databaseName = "db_user_data";
// Create connection
$con = mysqli_connect($host, $user, $pass, $databaseName);
// Check connection
if (mysqli_connect_errno($con)){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
else{
$con->query($sqlStatement);
header('Location: success.php');
}
我使用PHP控制檯來調試PHP文件,但在這種情況下,即使第一個日誌「在這裏!」沒有打印到控制檯,所以我想知道它是否會達到這個.php文件。無論如何,executeStatement方法中的事件success
已達到,即使數據庫中沒有更改,也會打印「成功」。通過.php文件在本地服務器上執行的方式。有人有任何想法可以解決問題嗎?
在此先感謝
爲什麼從javascript發送整個查詢。只需以'json'格式發送你需要的數據。 '{username:'hello',password:'world'}',在'ajax'函數中將'dataType'選項設置爲'json',然後在'PHP'中對'json'進行解碼,然後執行PHP查詢PHP文件 – ashley
實際上sqlStatement變量包含「CREATE TABLE bla bla」之類的內容,它取決於用戶 – Husky
哦,我的!我真希望你知道你在這裏做什麼。只允許任何SQL語句發送到後端是非常不安全的。任何能夠訪問該頁面的人都可以刪除數據庫或導出敏感數據。 – thaJeztah