将username变量添加到数组时,SQL查询失败

时间:2013-03-17 15:52:03

标签: php mysql file-upload

我有这个数组,它包含要插入到所有列中的列和数据:

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,但是当它是硬编码的字符串时则不会。问题一直困扰着我,我尝试了无数的方法,但我已经接近放弃了!

1 个答案:

答案 0 :(得分:0)

正如约翰所说:

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

诀窍。