我正在尝试更新数据库中的某些值,并且在执行查询后,它不会更新数据库中的值,只会将其替换为空值。
这是我的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(Location
。crisss1205_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 ;
?>
数据库:
答案 0 :(得分:0)
可能是您表单中已发布字段的name
属性拼写错误。转储$_POST
内容以查看它是否包含您期望的内容,并仔细检查HTML。
答案 1 :(得分:0)
使用POST方法时似乎有问题。如果我更改表单以使用GET然后更改PHP以使用$ _GET或$ _REQUEST它工作正常。我想使用POST,但我使用AJAX发送表单详细信息,安全性不是问题。我现在必须得到GET作为一种解决方法,直到我发现它到底发生了什么。