Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.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更新查询数组(0){}_Php_Mysql - Fatal编程技术网

PHP MySQL更新查询数组(0){}

PHP MySQL更新查询数组(0){},php,mysql,Php,Mysql,谁能帮助我理解为什么我的查询更新没有更新数据库中的数据 这是我的php代码: <?php $code = $_GET['code']; $n1= $_GET['n1']; $n2= $_GET['n2']; $n3 = $_GET['n3']; try { $connexion= new PDO('mysql:host=localhost;dbname=data','mydata','password'); $sql_update = "UPDATE data.check SE

谁能帮助我理解为什么我的查询更新没有更新数据库中的数据

这是我的php代码:

<?php

$code = $_GET['code'];
$n1= $_GET['n1'];
$n2= $_GET['n2'];
$n3 = $_GET['n3'];

try {
  $connexion= new PDO('mysql:host=localhost;dbname=data','mydata','password');
  $sql_update = "UPDATE data.check SET  numb_1='".$n1."',numb_2='".$n2."','numb_3'='".n3."' WHERE 'code_product' =".$code;
  $query = $connexion-> prepare($sql_update);
  $query -> execute();
  $data_update= $query -> fetchAll(PDO::FETCH_ASSOC);
}

catch(PDOException $e)
{
 echo "<br>" . $e->getMessage();
}

执行
更新后
需要再次查询获取结果,如

$sql_update = "UPDATE data.check SET  numb_1='".$n1."',numb_2='".$n2."','numb_3'='".$n3."' WHERE 'code_product' =".$code;
$query = $connexion-> prepare($sql_update);
$query -> execute();

$query = $dbh->prepare("SELECT * FROM data.check");
$query->execute();
$data_update= $query -> fetchAll(PDO::FETCH_ASSOC);// now it will get records

执行
update
后,需要再次查询获取结果,如

$sql_update = "UPDATE data.check SET  numb_1='".$n1."',numb_2='".$n2."','numb_3'='".$n3."' WHERE 'code_product' =".$code;
$query = $connexion-> prepare($sql_update);
$query -> execute();

$query = $dbh->prepare("SELECT * FROM data.check");
$query->execute();
$data_update= $query -> fetchAll(PDO::FETCH_ASSOC);// now it will get records
1)更改

$sql_update = "UPDATE data.check SET  numb_1='" . $n1 . "',numb_2='" . $n2 . "','numb_3'='" . n3 . "' WHERE 'code_product' =" . $code;

=>在
n3
中,您忘记添加
$
。并且,用反勾号替换单引号以括起列名

更新代码

<?php

$code = $_GET['code'];
$n1 = $_GET['n1'];
$n2 = $_GET['n2'];
$n3 = $_GET['n3'];

try {

  $connexion = new PDO('mysql:host=localhost;dbname=data', 'mydata', 'password');

  $sql_update = $connexion->prepare("UPDATE `data`.`check` SET numb_1 = :numb_1 , numb_2 = :numb_2, numb_3 = :numb_3 WHERE `code_product` = :code_product");
  $sql_update->execute(array(':numb_1' => $n1,':numb_2'=>$n2, ':numb_3'=>$n3,':code_product'=>$code));


  $stmt = $connexion->prepare("SELECT * FROM `data`.`check` WHERE code_product=:code_product");
  $stmt->execute(array(':code_product'=>$code));
  $data_update= $stmt -> fetchAll(PDO::FETCH_ASSOC);

} catch (PDOException $e) {
  echo "<br>" . $e->getMessage();
}
?>

1)更改

$sql_update = "UPDATE data.check SET  numb_1='" . $n1 . "',numb_2='" . $n2 . "','numb_3'='" . n3 . "' WHERE 'code_product' =" . $code;

=>在
n3
中,您忘记添加
$
。并且,用反勾号替换单引号以括起列名

更新代码

<?php

$code = $_GET['code'];
$n1 = $_GET['n1'];
$n2 = $_GET['n2'];
$n3 = $_GET['n3'];

try {

  $connexion = new PDO('mysql:host=localhost;dbname=data', 'mydata', 'password');

  $sql_update = $connexion->prepare("UPDATE `data`.`check` SET numb_1 = :numb_1 , numb_2 = :numb_2, numb_3 = :numb_3 WHERE `code_product` = :code_product");
  $sql_update->execute(array(':numb_1' => $n1,':numb_2'=>$n2, ':numb_3'=>$n3,':code_product'=>$code));


  $stmt = $connexion->prepare("SELECT * FROM `data`.`check` WHERE code_product=:code_product");
  $stmt->execute(array(':code_product'=>$code));
  $data_update= $stmt -> fetchAll(PDO::FETCH_ASSOC);

} catch (PDOException $e) {
  echo "<br>" . $e->getMessage();
}
?>



因为
update
查询不会返回任何数据。您正在使用update。您应该使用select返回任何数据。另外,请考虑如果我在GET请求中发送
…&code=0%20或%201=1
,会发生什么情况。这段代码是完全开放的。我想你有足够的时间来完成下面给出的答案。至少回答@ZouZou@NanaPartykar我刚刚测试了你的代码。因为
update
查询不返回任何数据。你正在使用update。你应该使用select返回任何数据。另外,请考虑如果我在GET请求中发送
…&code=0%20或%201=1
会发生什么。这段代码是完全开放的。我想你有足够的时间来完成下面给出的答案。至少回答@ZouZou@NanaPartykar我刚刚测试了你的代码。为什么不用一个查询和两个语句(UPDATE和SELECT)?为什么不用一个查询和两个语句(UPDATE和SELECT)?为什么用mysqli和pdo?我的坏@Ivan。谢谢你指出。我有一个问题,PDO没有使用未绑定的参数引发异常。为什么要引发异常?代码是否有效?数据是否来@Zouzu.?@NanaPartykar数据是否不来:(为什么有mysqli和pdo?我的坏@Ivan.谢谢你指出。我有一个问题,pdo没有用未绑定的参数引发异常。你想引发异常吗?代码是否工作?数据是否来@Zouzu.?@NanaPartykar数据不来:(