当我在artist_as字段中输入任何特殊字符时,我收到并出错。在输入具有特殊字符"
或'
这是我的型号代码:
$this->db->query("Delete from tv_cast where tv_id = '{$tvid}'");
if(array_key_exists('tv_cast_as_artist_id', $post)){
$count = count($post['tv_cast_as_artist_id']);
$i = 0;
$this->db->query("Delete from tv_cast where tv_id = '{$tvid}'");
while($i < $count){
$this->db->query("Insert into tv_cast (tv_id, artist_id,artist_as)
Values ('{$tvid}','{$post['tv_cast_as_artist_id'][$i]}','{$post['tv_cast_as_artist_as'][$i]}'
)");
$i++;
}
}
我收到错误:
错误号码:1064
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第2行“
s Ex-Boyfriend' )
”附近使用正确的语法
Insert into tv_cast (tv_id, artist_id,artist_as) Values ('29','7174','Rashmi's Ex-Boyfriend' )
文件名:/home/divazmed/public_html/design/models/admin_model.php
行号:612
答案 0 :(得分:1)
您的artist_as
字段似乎未正确转义。
使用类似:
$data = array(
'tv_id' => $tvid ,
'artist_id' => $post['tv_cast_as_artist_id'][$i] ,
'artist_as' => $post['tv_cast_as_artist_as'][$i]
);
$this -> db -> insert('tv_cast', $data);
您的所有值都将自动转义,从而产生更安全的查询等
您可以在此处阅读有关Codeigniter Active Record类的更多信息:
http://ellislab.com/codeigniter/user-guide/database/active_record.html#insert
答案 1 :(得分:0)
在mysql中添加数据:
html_entities(mysql_real_escape_string($variable));
要在页面上打印,您可以使用:
html_entity_decode(stripslashes($variable));