ホームページ >バックエンド開発 >PHPチュートリアル >出力配列をデータベースに書き込むにはどうすればよいですか?

出力配列をデータベースに書き込むにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 13:27:001085ブラウズ

出力配列をデータベースに書き込む方法は?
2 つの値を 2 つのフィールドに書き込む必要があります。
配列 ( [0] =>upload/2015/09/06/20150906164734000.jpg [1] =>upload/2015/09/06/20150906164734001.jpg


ディスカッションへの返信 (解決策)

1. 配列を走査し、一度に 1 つの要素を挿入します
2. それを文字列に接続して挿入します

その方法はニーズに応じて異なります。特定のルールはありません
あなたはプログラムの奴隷ではなく、プログラムのマスターです

foreach($arr as $v){    mysql_query("insert into tbname (image_url) values ('".$v."')");}

0 は最初に対応します 1 は 2 番目に対応します それはあなたの設計次第です....

foreach($arr as $v){    mysql_query("insert into tbname (image_url) values ('".$v."')");}



初心者なので詳しく書きます
upload.phpページ
<?phpheader("Content-type: text/html; charset=utf-8");class upload {  public $upload_file = array();  public $upload_path = 'upload';  public $timetree = 1;  public $allow = array('jpg', 'gif', 'bmp', 'jpeg', 'png');  function __construct($path='') {    if(!isset($_FILES)) return $this->error(99);    if($path) $this->upload_path = $path;    if($_FILES && $this->timetree) {        $this->upload_path .= date('/Y/m/d');        if(! file_exists($this->upload_path)) mkdir($this->upload_path, 0666, true);    }    foreach($_FILES as $info) {        if(! is_array($info['name'])) {            $this->upload_callback($info);            continue;        }        for($i=0;$i<count($info['name']);$i++) {            $this->upload_callback(array(                'name' => $info['name'][$i],                'type' => $info['type'][$i],                'tmp_name' => $info['tmp_name'][$i],                'error' => $info['error'][$i],                'size' => $info['size'][$i],                ));        }    }  }   /**   * 上传处理回调方法   * 功能 保存上传文件   **/  function upload_callback($info) {    if($info['error']) return $this->error($info['error']);    if(!($ext = $this->extension($info['name']))) return;      $t= date('YmdHis');    $n = 0;      do {           $filename = sprintf('%s/%s%03d.%s', $this->upload_path, $t, $n++, $ext);    }while(file_exists($filename));      copy($info['tmp_name'], $filename);      $this->upload_file[] = $filename;  }  function extension($filename) {    $t = strtolower(pathinfo($filename, PATHINFO_EXTENSION));    if(in_array($t, $this->allow)) return $t;    $this->error("$t 非法的类型");    return '';  }  /**   * 错误处理   **/  function error($errno) {    $msg = '';      switch($errno) {          case UPLOAD_ERR_INI_SIZE:              $msg = '上传的文件超过了 '.ini_get('upload_max_filesize');              break;          case UPLOAD_ERR_FORM_SIZE:              $msg = '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';              break;          case UPLOAD_ERR_PARTIAL:              $msg = '文件只有部分被上传';              break;        case UPLOAD_ERR_NO_FILE:            $msg = '没有文件被上传';            break;        case UPLOAD_ERR_NO_TMP_DIR:            $msg = '找不到临时文件夹';            break;        case UPLOAD_ERR_CANT_WRITE:            $msg = '文件写入失败';            break;          default:              $msg = '错误:'.$errno;              break;      }    echo "<script>alert('$msg');</script>";  }}$p = new upload;print_r($p->upload_file);?>



アップロードして戻ってきたup.html
<form id="upload_form" enctype="multipart/form-data" method="post" action="upload.php"><div class="upset">正面: <input id="img" name="img" type="file" accept="image/*" onChange="fileSelected()" ></div><div class="upset">背面: <input id="img2" name="img2" type="file" accept="image/*" onChange="fileSelected()" ></div><div><input type="button" value="上传" onClick="startUploading()" />	</div></form>下面这句是返回接收的<div id="upload_response"><div>显示就是这个内容:Array ( [0] => upload/2015/09/06/20150906164734000.jpg [1] => upload/2015/09/06/20150906164734001.jpg


書きたいだけです。これら 2 つの値をそれぞれデータに入力します。 2 つのフィールド

$sql = "insert into 表 (IMG1,IMG 2) values('$p->upload_file[0]', '$p->upload_file[1]')";

$sql = "insert into 表 (IMG1,IMG 2) values('$p->upload_file[0]', '$p->upload_file[1]')";

他のモデレータにも感謝します。最初に文字列を取得し、それを保存し、それを取り出した後にシリアル化する操作では、元の構造が保持されます
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。