【发布时间】:2011-09-16 14:51:39
【问题描述】:
我正在我的开发机器下使用 PHP 进行开发并远程连接到数据库。我将文件上传到服务器并在线查询按预期工作,但在本地主机中却没有。所有其他查询都有效!
我有一段代码可以在数据库中插入一条新记录,或者如果它已经存在则更新它。
代码是:
$name = mysql_real_escape_string($_REQUEST['name']);
$title = mysql_real_escape_string($_REQUEST['title']);
$content = $_REQUEST['content'];
$lang_drop = mysql_real_escape_string($_REQUEST['lang']);
if($uid == 0)
{
$maxSort = tools::getInfo($table, Array(), Array('MAX(sort_order) as sort_order'));
$maxSort = $maxSort[0]['sort_order']+1;
$sql="insert into quemsomos (title,name,lang,sort_order)
values(
'$title',
'$name',
'$lang_drop',
$maxSort
)";
echo $sql;
mysql_query($sql);
$uid = mysql_insert_id();
}
else{
$maxSort = $data['sort_order'];
$sql="update `quemsomos` set `title`='blabkalm', `name`='{$name}', `lang`='{$lang_drop}', `sort_order`=$maxSort where `uid`={$uid}";
mysql_query($sql);
echo $sql;
}
很简单...如果我插入一条新记录,它可以正常工作并且打印的 $sql 值是:
insert into quemsomos (title,name,lang,sort_order) values('title412', 'name421', 'pt', 3 )
问题是当我更新查询时执行但只有硬编码的值存储在数据库中。我的意思是,在下面的更新之后,数据库中的所有值都是空的,除了 sort_order 被保存和标题(因为它是硬编码的......如果我放置正确的变量,该字段也会变为空白)
更新语句的echo $sql 返回以下内容:
update `quemsomos` set `title`='blabkalm', `name`='name421', `lang`='pt', `sort_order`=3 where `uid`=2
如您所见,所有值都在那里,如果我手动运行此查询,一切正常...
这对任何人都有意义吗?
【问题讨论】:
标签: php mysql sql sql-update