$vip ); $db->autoExecute($fdyu->table('oa_vip'),$fiel"/> $vip ); $db->autoExecute($fdyu->table('oa_vip'),$fiel">

ホームページ  >  記事  >  バックエンド開発  >  データベースに保存した後、前の 000 が表示されないのはなぜですか?

データベースに保存した後、前の 000 が表示されないのはなぜですか?

WBOY
WBOYオリジナル
2016-06-13 12:01:041345ブラウズ
MyException - 代码迷
ホームページ
  • ウェブ開発
  • Android
  • J2EE
  • PHP
  • Linux/Unix
  • MySql
  • C#
  • その他。 .
現在の場所: Code Fans » PHP » データベースに保存した後、先頭の 000 が消えるのはなぜですか?

データベースに保存した後、先頭の 000 が消えるのはなぜですか

www.MyException.Cn、ネットユーザーによる共有日: 2014-06-30 閲覧数: 5 回
データベースに保存した後、最初の 000 が欠落するのはなぜですか?
$field_values_vip = array(
"vip" => $vip
);
$db->autoExecute($fdyu->table('oa_vip'),$field_values_vip);
If $vip='0004956321';
に保存されたフィールド vip を送信したときデータベースには 4956321 という名前だけが保存されており、前の 000 は消えています。なぜでしょうか。
------解決策----------------------
autoExecute メソッドに依存します 書きました
------解決策のアイデア----------------------
プログラムでテストする しばらくすると、いいえ問題が見つかりました。

$sql 出力は INSERT INTO table (vip) VALUES ('0004956321')

<br /><?php<br /><br />$vip='0004956321';<br /><br />$field_values_vip = array(<br />"vip" => $vip<br />);<br />autoExecute('table',$field_values_vip);<br /><br /><br />function autoExecute($table, $field_values, $mode = 'INSERT', $where = '', $querymode = '')<br />    {<br />        #$field_names = $this->getCol('DESC ' . $table);<br />        $field_names = array('vip');<br /><br />        $sql = '';<br />        if ($mode == 'INSERT')<br />        {<br />            $fields = $values = array();<br />            foreach ($field_names AS $value)<br />            {<br />                if (array_key_exists($value, $field_values) == true)<br />                {<br />                    $fields[] = $value;<br />                    $values[] = "'" . $field_values[$value] . "'";<br />                }<br />            }<br /><br />            if (!empty($fields))<br />            {<br />                $sql = 'INSERT INTO ' . $table . ' (' . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';<br />            }<br />        }<br />        else<br />        {<br />            $sets = array();<br />            foreach ($field_names AS $value)<br />            {<br />                if (array_key_exists($value, $field_values) == true)<br />                {<br />                    $sets[] = $value . " = '" . $field_values[$value] . "'";<br />                }<br />            }<br /><br />            if (!empty($sets))<br />            {<br />                $sql = 'UPDATE ' . $table . ' SET ' . implode(', ', $sets) . ' WHERE ' . $where;<br />            }<br />        }<br /><br />        echo $sql;<br /><br />        /*if ($sql)<br />        {<br />            return $this->query($sql, $querymode);<br />        }<br />        else<br />        {<br />            return false;<br />        }*/<br />    }<br />?><br />

----- と等しくなります。 -解決策のアイデア----------------------
$sql = 'INSERT INTO ' . $table . implode(', ', $fields) . ') VALUES (' . implode(', ', $values) . ')';
echo $sql;
出力を見てください
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。