在MySQL Query之后,行显示空白值

时间:2011-01-02 00:57:45

标签: php mysql sql

我正在尝试更新数据库中的某些值,并且在执行查询后,它不会更新数据库中的值,只会将其替换为空值。

这是我的PHP代码:

$sql = 'UPDATE ' . $tbl_name . ' SET `Name` = \'' . $name .'\', `Store` = \'apples\', `URL` = \'apples\', `SKU` = \'apples\', `Price` = \'apples\', `Location` = \'apples\' WHERE CONVERT(`crisss1205_me_com`.`ID` USING utf8) = \'1\' LIMIT 1;';

并且它不会返回任何错误。变量 $ name 来自$ _POST

如果我使用echo $sql;打印出查询,它看起来像这样:

  

UPDATE crisss1205_me_com SET Name ='HelloWorld',Store ='apples',URL ='apples',SKU ='apples',{{1} } ='apples',Price ='apples'WHERE CONVERT(Locationcrisss1205_me_com使用utf8)='1'限制1;

但是在“名称”列下的数据库中,它显示一个空格。

如果我单独保留查询但将ID更改为$name = $_POST['name'];,则会更新数据库。

它可能是什么原因导致它不会出现在“POST”中?


$name = "HelloWorld";

浏览器源代码:

 <?php

$tbl_name = $_COOKIE['e-mail_ctt'];
require_once('../config.php');

    $name = (string)$_POST['name'];
    $store = $_POST['store'];
    $url = $_POST['url'];
    $sku = $_POST['sku'];
    $price = $_POST['price'];
    $location = $_POST['location'];

    $demo = "app";

$sql = "UPDATE " . $tbl_name . " SET Name='" . $name . "', Store='" . $store . "', URL='" . $url . "', SKU='" . $sku . "', Price='" . $price . "', Location='" . $location . $demo . "' WHERE ID='1';";
echo $sql;
mysql_query($sql) or die(mysql_error());

exit ;

?>

数据库:

alt text

2 个答案:

答案 0 :(得分:0)

可能是您表单中已发布字段的name属性拼写错误。转储$_POST内容以查看它是否包含您期望的内容,并仔细检查HTML。

答案 1 :(得分:0)

使用POST方法时似乎有问题。如果我更改表单以使用GET然后更改PHP以使用$ _GET或$ _REQUEST它工作正常。我想使用POST,但我使用AJAX发送表单详细信息,安全性不是问题。我现在必须得到GET作为一种解决方法,直到我发现它到底发生了什么。