更新php中的查询问题

时间:2013-10-08 08:03:34

标签: php mysql

这是我的表格' tbl_size'

**Col Name**        **Data Type**   
size_id            int(11)  
pd_id              int(11)  
size_name          varchar(20)  
size_chart         int(6)   
qty                text 

现在我尝试使用以下查询更新此表

$query="update tbl_size set `qty`='10' where `size_id`=335";

当我在mysql中运行此查询时,它工作正常,但是当我尝试从php执行同样的操作时,它会将qty更新为' 0'而不是' 10'。 我不明白为什么会这样。请帮我解决这个问题。

新更新的代码:

// $rowvo['od_qty']=10;

// $row_1['qty']=20;

$sql = "SELECT qty  FROM tbl_size WHERE size_id =".$rowvo['size_id'];

$result = dbQuery($sql);

$row_1    = dbFetchAssoc($result);

$pqty=$row_1['qty']-$rowvo['od_qty'];

echo "Total Quantity Available Before Diduction : ".$row_1['qty'];

echo "Sold Quantity : ".$rowvo['od_qty'];

echo "Remaining Quantity : $pqty";

$sql_qty="update tbl_size set `qty`=$pqty where `size_id`=".$rowvo['size_id'];

echo "$sql_qty<br>";

$result_qty=mysql_query($sql_qty) or die('Error : '.mysql_error());

echo "No of Rows Affected : ".mysql_affected_rows()."<br>".mysql_error(); // 1

PDO新代码:

try {
$b=$a->prepare("update tbl_size set `qty`=:qty where `size_id`=:size");
$b->bindValue(":size",$size_id);
$b->bindValue(":qty",$pqty);
$b->execute();

 } catch(PDOException $ex) {
echo "An Error occured!"; //user friendly message

}

和var_dump($ ex)= NULL

3 个答案:

答案 0 :(得分:2)

检查表格的结构,你有qty的文字类型。它可能不是char或varchar类型(或者它是并且默认值设置为'0')。要解决此问题,您可以使用phpmyadmin,SQLyog或其他MySql管理程序。

更改您的查询

$sql_qty="update tbl_size set `qty`=$pqty where `size_id`=".$rowvo['size_id'];

$sql_qty="update tbl_size set `qty`='$pqty' where `size_id`='".$rowvo['size_id']."'";

答案 1 :(得分:1)

Your Code       ==> `qty`= $pqty

Changes to this ==> `qty`='$pqty'

答案 2 :(得分:0)

试试这个:

$query="update tbl_size set qty=10 where size_id=335";