我是JQuery的新手,正在开发一个项目。这个项目不应该做任何事情,它更像是一个概念证明,所以我可以学习。到目前为止,我有3个PHP文件,一个名为'connection.php',连接到我的本地mySQL数据库。另一个叫做'save_score.php',它会将值保存到我的数据库中。最后,我有我的'test.php'文件创建了一些值,并使用JQuery将它们发送到'save_score.php'以将它们插入到我的数据库中。
我遇到的问题是'connection.php'工作正常。我可以在PHP中硬编码INSERT INTO语句并将该查询发送到我的DB以插入它。所以连接没有问题。我还通过两个echo语句测试了JQuery是否实际上将值发送到'save_score.php',并且echo语句发回了我的测试值:'Jeff'和“10”。但是,mySQL INSERT语句没有努力将值和查询发送到我的数据库。
所以从本质上讲,我在'$ store'中的陈述应该可以解决问题,但事实并非如此,我不知道为什么。
'save_score.php':
<?php
include 'connection.php';
$name = $_POST['name'];
$score = $_POST['score'];
echo $name;
echo $score;
$store = "INSERT INTO `galleryscores` (`player_name`, `player_score`) VALUES ($name, $score)";
$mysqli->query($store);
echo "done";
?>
'connection.php':
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "cs301";
// Create connection
$mysqli = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($mysqli->connect_error) {
die("Connection failed: " . $mysqli->connect_error);
}
'test.php的':
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script type="text/javascript">
var you = 's';
var you_score = 10;
$.post("save_score.php", {
name: you,
score: you_score
})
.done(function(data) {
alert("Data Loaded: " + data);
});
</script>
</head>
<body>
</body>
</html>
答案 0 :(得分:0)
尝试将插入查询更改为此
$store = "INSERT INTO `galleryscores` (`player_name`, `player_score`) VALUES ('".$name."', '".$score."')";
为了插入值,它们应该作为字符串传递给查询。最终,您要传递一个字符串以供执行。
EDITED 正如Matt所说,你应该总是尝试阻止SQL注入。以下显示了如何操作:
$query = $mysqli->prepare("INSERT INTO `galleryscores` (`player_name`, `player_score`) VALUES (?, ?)");
$query->bind_param("si", $name, $score);// 's' represents the corresponding variable type is String
$query->excecute();
答案 1 :(得分:0)
以下是PDO
$dbh = new PDO('mysql:dbname=cs301;host=localhost', $username, $password);
$stmt = $dbh->prepare('INSERT INTO `galleryscores` (`player_name`, `player_score`) VALUES (:player_name, :player_score)');
$stmt->execute( array('player_name' => $_POST['name'], 'player_score' => $_POST['score']) );
答案 2 :(得分:0)
我们在这里。如何使用MySQLi:D - 进行错误处理
numpy.savetxt