Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql更新,电脑说可以,但数据库没有变化_Php_Mysql_Sql - Fatal编程技术网

Php mysql更新,电脑说可以,但数据库没有变化

Php mysql更新,电脑说可以,但数据库没有变化,php,mysql,sql,Php,Mysql,Sql,您需要删除索引周围的单引号。在编写查询时,不应在列名周围加单引号。以这种方式编写您的查询- <?php require('dbconnect.php'); $indexno = $_POST['indexno']; $cevap = $_POST['cevap']; $cevapdate = gmdate("Y-m-d\TH:i:s\Z"); $query = "UPDATE soru SET cevap = '$cevap',

您需要删除
索引周围的单引号。在编写查询时,不应在列名周围加单引号。以这种方式编写您的查询-

<?php 

  require('dbconnect.php');

  $indexno = $_POST['indexno'];
  $cevap = $_POST['cevap'];
  $cevapdate = gmdate("Y-m-d\TH:i:s\Z");
  $query = "UPDATE soru 
               SET cevap = '$cevap', 
                   cevapdate = '$cevapdate' 
             WHERE `index` = '$indexno'";

$link = mysql_query($query);
if(!$link) {
  die('not worked: ' . mysql_error());
} else {
  mysql_close($con);    
  echo 'worked';
}

?>

您必须用反勾号而不是单引号转义行/表

$query = "UPDATE soru SET cevap = '$cevap', cevapdate = '$cevapdate' WHERE index = '$indexno'";

此外,还应避免用户输入,以防止出现错误。

索引中不应有引号。尝试删除它字段名不应该用引号括起来。尝试在
WHERE
语句中的“index”字段周围删除它们。注意:出于安全考虑,在SQL查询中使用用户输入时,您应该使用
mysql\u real\u escape\u string
。您还可以使用
mysql\u impacted\u rows
查看它是否真的做了什么。你的测试只是看看它是否抛出了一个错误。@Francois Deschenes:OP知道-请看:我试图从索引中删除引号,但没有这样做。它给了我一个错误。这段代码没有给出错误,但我看不出我的数据库有什么不同,奇怪吗?!它不是那样工作的,我试过了,它给了我一个mysql错误。此代码没有给出错误,但我看不到数据库中有任何更改。事实上,如果您在运行此查询时发布错误,这会很有帮助,因为引号不应用于table@user552828:错误说明了什么?另外,请尝试打印
$\u POST['indexno']
$\u POST['cevap']
的值。我打印的值是正确的。当我删除引号时,它表示您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行“index='2''附近使用的正确语法。这两个语法仍然相同。您一定是在其他地方犯了错误-可能是编辑了错误的文件或类似的文件。如果上面粘贴的代码是正确的,那么应该会给您一个错误。尽管如此,它现在也应该起作用。您确定数据库中有
索引
='$indexno的条目吗。也许
$indexno
不包含您认为它所包含的内容。您不必使用反勾号。@Dark Slipstream:通常不需要,但
index
是一个保留关键字,所以您可以在这里使用。在任何情况下,像他以前那样使用“不”都是行不通的。
$query = "UPDATE `soru`
  SET `cevap` = '$cevap', `cevapdate` = '$cevapdate'
  WHERE `index` = '$indexno'";