我有这个数组,它包含要插入到所有列中的列和数据:
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,但是当它是硬编码的字符串时则不会。问题一直困扰着我,我尝试了无数的方法,但我已经接近放弃了!
答案 0 :(得分:0)
正如约翰所说:
$array = array( 'name'=>$fileName, 'size'=>$fileSize, 'ext'=>$fileExt, 'artist'=>$username ); print_r($array);
诀窍。