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 回答