【发布时间】:2014-08-04 22:44:25
【问题描述】:
我有两个按钮:一个用于在我的数据库中创建一个表,另一个用于删除该表,但是当我单击“删除表”按钮时,显示的消息是:“错误创建表:表'发布'已经存在",因为它进入了第一个 if on php 文件。我找不到如何解决这个问题。
这是我的代码:
html
<button id="loadButton" type="button" class="btn btn-success" style="margin-top:5px;">Create Table</button>
<button id="deleteButton" type="button" class="btn btn-danger" style="margin-top:5px;">Drop Table</button>
dash.js 文件
$('#loadButton').click(function() {
$.ajax({
url: 'connectdb.php',
success: function(data){
alert(data);
},
error: function(jqXHR, textStatus, errorThrown){
alert('Error: ' + textStatus);
}
});
});
$('#deleteButton').click(function() {
$.ajax({
type: 'POST',
url: 'connectdb.php',
data: "drop",
success: function(data){
alert(data);
},
error: function(jqXHR, textStatus, errorThrown){
alert('Error: ' + textStatus);
}
});
});
connectdb.php 文件
// Create table
$sql="CREATE TABLE Post(
id_post int Primary Key,
titulo varchar(100) not null,
imagem longblob,
descricao varchar(1000) not null,
hashtag varchar(100) not null
)";
// Execute query
if(!isset($_POST["drop"])){
if (mysqli_query($con,$sql)) {
echo "Table created with success";
} else {
echo "Error create table: " . mysqli_error($con);
}
}
if (isset($_POST["drop"])) {
$sql1="DROP TABLE IF EXISTS Post;";
if (mysqli_query($con,$sql1)) {
echo "Table deleted";
} else {
echo "Error: " . mysqli_error($con);
}
}
我做错了什么?
【问题讨论】:
-
你发送的是一个值,而不是一个键 ->
data: "drop",。试试data: {drop:'drop'}。虽然像这样创建/删除表不是一个好主意。 -
感谢它有效:)... 为什么你说创建/删除这样的表不是一个好主意?以后我会手动创建表
-
为了安全起见,您需要确保您的
connectdb.php受密码保护,否则任何人都可以通过直接访问该网址来删除您的表格。 -
啊,好吧!你是对的,所以任何人都可以进行 sql 注入。我会听从你的建议:)。谢谢。
标签: javascript php jquery mysql ajax