concat函数修剪我的变量

时间:2013-08-19 07:21:23

标签: php mysql

$query="update invoice set
invoice_no=CONCAT('W-',$id,'/1420')
where invoice_id=$id";

这里$ id = 004但每次更新为id = 4,所以我的invoice_no成为W-4/1420 而我想要这样的W-004/1420 任何人都可以帮助我摆脱这个问题

2 个答案:

答案 0 :(得分:1)

在PHP代码中格式化它。使用带有前导零的格式的sprintf()

$query = sprintf('update invoice set 
                  invoice_no="W-%03d/1420" 
                  where invoice_id=%d', $id, $id );

或避免重复$id参数:

$query = sprintf('update invoice set 
                  invoice_no="W-%1$03d/1420" 
                  where invoice_id=%1$d', $id );

答案 1 :(得分:0)

因为你传递了一个数字... concat将它作为一个整数处理.. 所以首先尝试使用php连接它,然后将其传递给您的查询:

$invoice_no = 'W-'.$id.'/1420';
$query="update invoice set
invoice_no='$invoice_no'
where invoice_id=$id";