php
  • mysql
  • sql
  • 2016-08-05 8 views 1 likes 
    1

    に参加するためにカンマを使用します。

    INSERT INTO table1(id,picture) SELECT id, $var.picture from table2 
    

    の$ varが "http://example.com/images/" です。

    例(前):

    ID = 1 
    picture = 'flower.jpg' 
    

    例(後):

    ID = 1 
    picture = 'http://example.com/images/flower.jpg' 
    
    私はSELECTの$ varと絵(カンマが動作していない)に参加することができますどのように

    ..

    答えて

    0

    concat($var, '.picture')を使用できます。

    ただし、そうしないでください。代わりに、$var値をパラメータとしてクエリに渡す必要があります。私はアプリケーション側の値を連結しますが、concat()にパラメータを使用することもできます。

    1

    私はあなたの質問を理解している場合、正しく、これはトリックを行う必要が:

    INSERT INTO table1(id,picture) SELECT id, CONCAT($var, picture) FROM table2 
    
    +0

    それは構文エラーを生成します。単に意志がsprintf()を使用して、正しくフォーマット列を含む一時的な変数をインスタンス化します。だから私は使用しました: INSERT INTO table1(id、picture)SELECT id、CONCAT( 'http://example.com/images/'、picture)FROM table2 – user6618901

    0

    あなたは、PHP側にそれを実行することができます。

    // Get the data 
    $id   = 1; 
    $var  = 'http://example.com/images/'; 
    $picture = 'flower.jpg'; 
    $column  = sprintf('%s%s', $var, $picture); 
    
    // Set the query 
    $query = sprintf(' INSERT INTO table1 (id, picture) 
              SELECT  %s, %s 
              FROM   table2;', $id, $column); 
    
    +0

    準備クエリを使用しないので、あなたの文字列に 'addslashes()'を実行して、誤ったフォーマットエラーを防ぐことができます。 –

    関連する問題