【发布时间】:2011-04-08 18:58:54
【问题描述】:
我一直在我的公司托管包的子域上建立一个网站。它在后台发生了 PHP MySQL 操作,即 INSERTs、SELECTs 等。
它们是最基本的基本 SQL 语句,它们都可以正常工作。
但是,我最近从我的子域中复制了所有内容并将其全部上传到我的客户自己的由 1&1 运行的托管包,现在,我的 INSERT 语句不起作用。 SELECT、DELETE 语句都可以正常工作,但我的 INSERTS 不行。
我认为这是两个问题之一,要么是新数据库的权限错误,要么是我的代码中有一些明显的错误,而我的上一个数据库似乎并不在意。
这是我的插入代码:
<?php
include 'data.php';
$b_name = mysql_real_escape_string($_POST['businessName']);
$b_town = mysql_real_escape_string($_POST['placeName']);
$b_code = mysql_real_escape_string($_POST['postCode']);
$latlng = mysql_real_escape_string($_POST['latLong']);
mysql_connect($host, $user, $pass) or die ("Wrong Information");
mysql_select_db($db) or die("Wrong Database");
$newloc = preg_replace("/^.*\(([^)]*)\).*$/", '$1', $latlng);
$result = mysql_query("INSERT INTO reseller_addresses VALUES (NULL , '$b_name', '$b_code', '$b_town', '$newloc');") or die ("Broken Query");
echo "<script>setTimeout(\"self.parent.location.reload(true);\", 1000);</script><font color=\"#fbf7d7\">$businessName Successfully Added to the Database</font>";
mysql_close();
?>
这是关于从谷歌地图/表单设置中将地理位置添加到数据库中。
很遗憾,我无法授权实时预览,因为发生问题的管理区域是安全的。
提前感谢您的帮助。
编辑:我已经在我的网络服务器和我的客户端之间来回传递相同的文件,它们都适用于我,但不适用于我的客户端。
编辑:对不起,我在这里解释得很糟糕。基本上,一条新记录被插入到数据库中,但它是空的。
一个 print_r($_POST);揭示:
Array ( [businessName] => test [placeName] => test [postCode] => test [latLong] => (51.152495, -1.440411) [Submit] => Submit Place )
这是我提交的所有内容
【问题讨论】:
-
什么不起作用?您收到了哪些错误消息?
-
听起来您在客户端主机上的 db 用户只能访问“读取”操作。但是你应该从 MySQL 得到一个明确的错误。
-
看起来像是权限/配置问题,除了 INSERT 之外您可以执行任何操作。
-
代替或死亡(“Broken Query”);尝试做或死(mysql_error());看看会发生什么,应该有一些关于这个问题的信息。
-
我编辑了我的 OP,我意识到我对问题的解释有多么糟糕。插入了一条记录,但它是空白的。所以我猜这一定是 $_POST 的问题?