我绝对是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