2017-04-16 16 views
-3

これは私のコードですが、それは私が呼んで最後の行が好きではありません。ヘッダファイルからのメソッド。私が呼び出しているメソッドが同じ量の引数を取るとしても、無効なパラメータ番号を要求します。 $ paramsは呼び出しの直前で定義されており、$ queryは別のファイルから値が渡されているため、パラメータが定義されていないことはわかりません。私はプラスの代わりにドット演算子を使って$ paramsを定義しようとしましたが、それは助けになりませんでした。ここで$クエリの値を持つuploadImageメソッドへの私の呼び出しです:が、この解決することはできません

Image::uploadImage('postimg', 
    "UPDATE dry_posts SET postimg=:postimg WHERE id=:postid", array(':postid'=>$postid)); 

このファイルはimgur上に別のファイルにフォームから画像をアップロードすることになっています。

Image::uploadImage('postimg', 
    "UPDATE dry_posts SET postimg=:postimg WHERE id=:postid", array(':postid'=>$postid)); 

あなたが:postimgためと:postidを求めるだけ$postidを提供している:

<?php 
include_once("connect.php"); 

    class Image 
    { 
     public static function uploadImage($formname,$query,$params) 
     { 

      $formname = ""; 
      $response = ""; 
      $image = ""; 

      if(file_exists($formname)) 
      { 
       $image = base64_encode(file_get_contents($_FILES[$formname]['tmp_name'])); 
      } 
      $options = array('http'=>array(
       'method'=>"POST", 
       'header'=>"Authorization: Bearer 8cd9d1bb71401737dc720f9381d8e9763f580af6\n". 
       "Content-Type: application/x-www-form-urlencoded", 
       'content'=>$image 
      )); 

      $context = stream_context_create($options); 
      $imgurURL = "https://api.imgur.com/3/image"; 
      if ($_FILES[$formname]['size'] > 10240000) { 
       die('Image too big, must be 10MB or less!'); 
      } 
      if(file_exists($formname)) 
      { 
       $response = file_get_contents($imgurURL, false, $context); 

      } 
      $response = json_decode($response); 

      //$prearams = array($formname=>$response->data->link); 
      //$params = $preparams + $params; 
      $params=array(':post‌​id'=>$postid)+array(':postimg'=>$postimg‌​); 
      connect::query($query,$params); 


     } 


    } 

?> 

答えて

0

あなたの問題は、フォームが来ます。 ...もちろん

Image::uploadImage('postimg', 
    "UPDATE dry_posts SET postimg = :postimg WHERE id = :postid", array(':postid' => $postid, ':postimg' => $postimg)); 

は、あなたが$postimg値を移入する必要があります

を、あまりにも、この行を修正します:

のは:postimg値を追加することによってこの問題を解決してみましょう

$params=array(':post‌​id'=>$postid)+array(':postimg'=>$posti‌​mg‌​); 
Image :: uploadImage()関数の

です。する必要があります:

$params = array(':postid' => $params['postid'], ':postimg' => $params['postimg']); 

希望します。

+0

私は接続::クエリ( 'dry_posts FROM SELECT postimg')=この$のpostimgのようにそれを移植しようとした、[OK]。と私は$ postimgを埋める同じエラーを持って私はまだそのエラーを持って – Bubba

+0

あなたは '$ postimg'の値は何ですか?それを 'var_dump()'し、探している文字列かどうか確認してください。 ';:(=> $ postimg 'postimg'):' $ paramsは=配列( ':ポストID' => $ postid)+アレイ – JazZ

+0

$のpostimgもこのライン別のファイル – Bubba

関連する問題