我有一个表单,它包含了一些关于相机细节的字段。这是我在Joomla上创建的自定义页面。首先我得到的数据库对象:mysql_real_escape_string没有应用
$db = &JFactory::getDBO();
过程在表单中输入摄像机的名称,并加入到DB:
$add_name = $_POST['camera_name'];
$query_insert_camera = "INSERT INTO #__cameras (camera_name, ... , user_id) VALUES ('".mysql_real_escape_string($add_name)."', ... ,'".$user->id."')";
$db->setQuery($query_insert_camera);
$db->query();
我只是得到了摄像头名称为空字符串。如果我拿出mysql_real_escape_string
它工作正常。我猜mysql_real_escape_string
不喜欢我建立连接的方式......我想。
任何想法?
您是否收到警告?文档说,如果找不到要使用的连接,它将发出警告。否则,我建议你把连接句柄放在函数调用中。 – staticsan 2012-03-26 02:02:59
getDBO()实际使用什么样的连接?它是用'mysql_connect()'还是'mysqli()'或PDO创建一个?什么API被称为? 'mysql_real_escape_string()'只有在连接用'mysql_connect()'建立时才可用。 – 2012-03-26 02:06:31
为什么不使用Joomla的getVar? http://docs.joomla.org/Retrieving_and_Filtering_GET_and_POST_requests_with_JRequest::getVar – Shaz 2012-03-26 02:08:37