首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的插入查询在我的本地主机上工作,但在web服务器上不起作用

我的插入查询在我的本地主机上工作,但在web服务器上不起作用
EN

Stack Overflow用户
提问于 2009-10-20 00:24:49
回答 2查看 2.9K关注 0票数 1

我正在使用flex builder 3通过php插入到mysql数据库中,在我的本地主机上一切正常,问题是当我在web服务器上部署项目并运行它时,它连接到数据库,但我无法插入数据(当我插入数据时,它什么也不显示)。

另一件愚蠢的事情是在另一段代码中检索(select)数据,它在我的本地主机和web服务器上都工作得很好。

php代码如下:

代码语言:javascript
复制
<?php 

$host = "******"; 
$user = "******"; 
$pass = "******"; 
$database = "******"; 

$linkID = mysql_connect($host, $user, $pass) or die("Could not connect to host."); 
mysql_select_db($database, $linkID) or die("Could not find database."); 

$nickname = $_POST['nickname'];
$steam = $_POST['steam'];
$c1 = $_POST['c1'];
$c2 = $_POST['c2'];
$c3 = $_POST['c3'];

$results = mysql_query("INSERT INTO  `phantom`.`members` (`TF2_Nickname` ,`Steam_User_Name`,
`class1` ,`class2` ,`class3` ,`time`) VALUES ($nickname,  $steam,  $c1,  $c2,  $c3,NOW())");

?>
EN

回答 2

Stack Overflow用户

发布于 2009-10-19 16:50:39

您还需要declare the values as strings in your MySQL query

代码语言:javascript
复制
"INSERT INTO `phantom`.`members` (`TF2_Nickname`, `Steam_User_Name`, `class1`, `class2`, `class3`, `time`)
 VALUES ('$nickname', '$steam', '$c1', '$c2', '$c3', NOW())"

您还应该以某种方式准备它们,以避免它们被错误地视为SQL命令(请参阅SQL Injection)。PHP有mysql_real_escape_string function可以做到这一点:

代码语言:javascript
复制
"INSERT INTO `phantom`.`members` (`TF2_Nickname`, `Steam_User_Name`, `class1`, `class2`, `class3`, `time`)
 VALUES ('".mysql_real_escape_string($nickname)."', '".mysql_real_escape_string($steam)."', '".mysql_real_escape_string($c1)."', '".mysql_real_escape_string($c2)."', '".mysql_real_escape_string($c3)."', NOW())"
票数 1
EN

Stack Overflow用户

发布于 2022-01-08 21:54:36

插入到需要用户权限或管理员权限。检查您是否碰巧没有在代码中的某个地方修改这些权限,例如,您手动更改了管理员的名称……如果select可以工作,那是因为select不需要这么多权限。即使是非用户状态也可以通过select检索信息,但insert需要特殊权限。你知道你的代码,所以想一想这个区别

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1589698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档