0

列とその列に挿入されるデータを保持するこの配列があります。

if($this->_insert(array(
'name'=>$fileName,
'size'=>$fileSize,
'ext'=>$fileExt,
'artist'=>$username
))){

artist存在しない場合、またはartist文字列と等しい場合は正常に機能します。したがって、たとえば次の場合artist

$username = $user_data['username'];

それは動作しません。(私はそれが正しいデータをエコーアウトするかどうかをチェックしました、そしてそれはそうします)

しかし、artist等しい場合:

$username = "test";

次に、すべてが正しい正しいデータを送信しartistます。

これは_insert関数です:

public function _insert($array)
{
    $this->_database=new UploadDatabase();
    $this->_database->connect();
    $values = array_values($array);
    //format fields string
    $fields = implode(',', array_keys($array));
    //$fields = array("name","size", "path", "ext");
    return $this->_database->insert('audio',$values,$fields);
}

要約すると、ユーザー名は、それが実際のユーザー名変数である場合はSQLを分割しますが、ハードコードされた文字列の場合は分割しません。問題は一日中私を悩ませていました、そして私は無数の方法を試しました、しかし私はあきらめようとしています!

4

1 に答える 1

0

ジョンが述べたように:

$array = array( 'name'=>$fileName, 'size'=>$fileSize, 'ext'=>$fileExt, 'artist'=>$username ); print_r($array);

トリックをしました。

于 2013-04-09T11:19:56.773 に答える