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

问题描述:

Can anybody help me to understand why my query update dosen't update my data in my database.

This my code 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();
}

Thanks for any help.

任何人都可以帮助我理解为什么我的查询更新不会更新数据库中的数据。 p>

这是我的代码php: p>

 &lt;?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-&gt;  prepare($ sql_update); 
 $ query  - &gt;  execute(); 
 $ data_update = $ query  - &gt;  fetchAll(PDO :: FETCH_ASSOC); 
} 
 
catch(PDOException $ e)
 {
 echo“&lt; br&gt;”  。  $ e-&gt; getMessage(); 
} 
  code>  pre> 
 
 

感谢您的帮助。 p> div>

1) Change

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

To

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

=> In n3 you forgot to add $. And, replace single quotes with backtick to enclose column name.

Updated Code

<?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();
}
?>

After your update execution you need to query again for fetching result like,

$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