我对 Web 开发很陌生,所以我很有可能在这里做一些非常愚蠢的事情。
我正在使用 AJAX 将数据发送到 PHP 文件,该文件将使用数据运行 SQL 命令来更新表。我正在处理编辑文章,所以我的 PHP 文件需要知道三件事:文章的原始名称(供参考)、新名称和新内容。我还告诉它用户正在查看哪个页面,以便它知道要编辑哪个表。
$('#save_articles').click(function () {
var current_page = $('#current_location').html();
var array_details = {};
array_details['__current_page__'] = current_page;
$('#article_items .article_title').each(function(){
var article_name = $(this).html(); //The text in this div is the element name
var new_article_name = $(this).next('.article_content');
new_article_name = $(new_article_name).children('.article_content_title').html();
var new_article_content = $(this).next('.article_content');
new_article_content = $(new_article_content).children('.article_content_content').html();
array_new_deets = {new_name:new_article_name, content:new_article_content};
array_details[article_name] = array_new_deets;
});
send_ajax("includes/admin/admin_save_articles.php", array_details);
});
在 PHP 文件中,我首先检索当前页面并将其存储在 $sql_table 中,然后从 $_POST 中删除当前页面变量。然后我运行这个。
foreach($_POST as $key => $value){
$original_name = $key;
$new_name = $value['new_name'];
$new_cont = $value['content'];
$query = "UPDATE
`$sql_table`
SET
`element_name`= '$new_name',
`element_content` = '$new_cont',
WHERE
`element_name` = '$original_name'";
$query = mysql_query($query);
if(!$query){
die(mysql_error());
}
}
我总是收到一条错误消息,说“sitep_Home”是一个不正确的表名。它不仅是我数据库中的真实表,而且我实际上更改了它的名称以确保它不是关键字或其他东西的问题。
如果我改为在没有变量 $sql_table 的情况下运行查询(指定该表称为“sitep_Home”),则查询将接受该表。然后它实际上并没有更新表,我怀疑这是因为 WHERE 参数也使用了一个变量。
谁能看到我在这里做错了什么?