【问题标题】:my insert query is working in my localhost but not in web server我的插入查询在我的本地主机中工作,但在 Web 服务器中没有
【发布时间】:2009-10-19 16:24:49
【问题描述】:

我正在使用 flex builder 3 使用 php 插入 mysql 数据库,并且在我的 localhost 中一切正常,问题是当我在 Web 服务器中部署项目并运行它时,它连接到数据库但我可以' t 插入数据(当我插入数据时它什么也不显示)
另一个愚蠢的事情是在另一段代码中检索(选择)在我的本地主机和 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())");

?>

【问题讨论】:

  • 检查服务器上的 MySQL 版本。
  • 另外,检查表是否存在等等。这个问题现在很不清楚。
  • 双重检查登录mysql的信息,检查服务器上是否存在数据库。

标签: php database insert


【解决方案1】:

你也需要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())"

【讨论】:

  • 还是一样,但还是谢谢
【解决方案2】:

插入需要用户权限或管理员权限。检查您是否偶然在代码中的某处修改了这些权限,例如,您手动更改了管理员的名称......如果它有效,则选择是因为选择不需要这么多权限。即使是非用户状态也可以通过 select 检索信息,但 insert 需要特殊权限。你知道你的代码,所以想想这个区别

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    • 1970-01-01
    相关资源
    最近更新 更多