首页- Web开发
- Android
- J2EE
- PHP
- Linux/Unix
- MySql
- C#
- 更多...
为何保存到数据库后,前面的000没有了
www.MyException.Cn,网友分享于:2014-06-30 浏览:5次 为什么保存到数据库后,前面的000没有了$field_values_vip = array(
"vip" => $vip
);
$db->autoExecute($fdyu->table('oa_vip'),$field_values_vip);
假如$vip='0004956321';
当我提交保存到数据库字段vip后,只保存为4956321,前面的000没有了,为什么?
------解决思路----------------------
这要看你 autoExecute 方法是怎么写的了
------解决思路----------------------
用你的程序测试一下,没发现问题啊。
$sql 输出等于 INSERT INTO table (vip) VALUES ('0004956321')
$vip='0004956321';
$field_values_vip = array(
"vip" => $vip
);
autoExecute('table',$field_values_vip);
function autoExecute($table, $field_values, $mode = 'INSERT', $where = '', $querymode = '')
{
#$field_names = $this->getCol('DESC ' . $table);
$field_names = array('vip');
$sql = '';
if ($mode == 'INSERT')
{
$fields = $values = array();
foreach ($field_names AS $value)
{
if (array_key_exists($value, $field_values) == true)
{
$fields[] = $value;
$values[] = "'" . $field_values[$value] . "'";
}
}
if (!empty($fields))
{
$sql = 'INSERT INTO ' . $table . ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
}
}
else
{
$sets = array();
foreach ($field_names AS $value)
{
if (array_key_exists($value, $field_values) == true)
{
$sets[] = $value . " = '" . $field_values[$value] . "'";
}
}
if (!empty($sets))
{
$sql = 'UPDATE ' . $table . ' SET ' . implode(', ', $sets) . ' WHERE ' . $where;
}
}
echo $sql;
/*if ($sql)
{
return $this->query($sql, $querymode);
}
else
{
return false;
}*/
}
?>
------解决思路----------------------
$sql = 'INSERT INTO ' . $table . ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
echo $sql;
输出看看