我正在使用flex builder 3通过php插入到mysql数据库中,在我的本地主机上一切正常,问题是当我在web服务器上部署项目并运行它时,它连接到数据库,但我无法插入数据(当我插入数据时,它什么也不显示)。
另一件愚蠢的事情是在另一段代码中检索(select)数据,它在我的本地主机和web服务器上都工作得很好。
php代码如下:
<?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())");
?>发布于 2009-10-19 16:50:39
您还需要declare the values as strings in your MySQL query:
"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可以做到这一点:
"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())"发布于 2022-01-08 21:54:36
插入到需要用户权限或管理员权限。检查您是否碰巧没有在代码中的某个地方修改这些权限,例如,您手动更改了管理员的名称……如果select可以工作,那是因为select不需要这么多权限。即使是非用户状态也可以通过select检索信息,但insert需要特殊权限。你知道你的代码,所以想一想这个区别
https://stackoverflow.com/questions/1589698
复制相似问题