Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php mysql\u real\u escape\u字符串不适用_Php_Joomla - Fatal编程技术网

Php mysql\u real\u escape\u字符串不适用

Php mysql\u real\u escape\u字符串不适用,php,joomla,Php,Joomla,我有一个表格,它包含了很多关于相机细节的字段。这是我在Joomla上创建的自定义页面。首先,我得到数据库对象: $db = &JFactory::getDBO(); 处理表单中输入的摄像机名称并添加到数据库: $add_name = $_POST['camera_name']; $query_insert_camera = "INSERT INTO #__cameras (camera_name, ... , user_id) VALUES ('".mysql_real_escape_

我有一个表格,它包含了很多关于相机细节的字段。这是我在Joomla上创建的自定义页面。首先,我得到数据库对象:

$db = &JFactory::getDBO();
处理表单中输入的摄像机名称并添加到数据库:

$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\u real\u escape\u string
就可以了。我猜
mysql\u real\u escape\u string
不喜欢我建立连接的方式……我想


有什么想法吗?

您可能想了解JRequest::getVar


但是,它似乎不能在模块中使用:

您可能需要查看JRequest::getVar


但是,它似乎不能在模块中使用:

您的代码应该可以工作。我看到mysql\u real\u escape\u string()的使用方式几乎相同

该代码与您所拥有的代码之间的差异很小,但不妨尝试以下内容:

$db = &JFactory::getDBO();

// Escape the POST var as you grab it
$add_name = mysql_real_escape_string(JRequest::getVar('camera_name', '', 'post', 'string'));

$query_insert_camera = "INSERT INTO #__cameras (camera_name) VALUES ('" . $add_name . "')";
$db->setQuery($query_insert_camera);
$db->query();

你的代码应该可以工作。我看到mysql\u real\u escape\u string()的使用方式几乎相同

该代码与您所拥有的代码之间的差异很小,但不妨尝试以下内容:

$db = &JFactory::getDBO();

// Escape the POST var as you grab it
$add_name = mysql_real_escape_string(JRequest::getVar('camera_name', '', 'post', 'string'));

$query_insert_camera = "INSERT INTO #__cameras (camera_name) VALUES ('" . $add_name . "')";
$db->setQuery($query_insert_camera);
$db->query();

我刚刚遇到在Joomla中使用mysql(I)_real_escape_string()的问题,发现我需要传入db连接作为第一个参数:

$db = JFactory::getDbo();
$myVar = JRequest::getVar('myVarName');
$mysqlSafeVar = msqli_real_escape_string($db->getConnection(), $myVar);
$sql = 'INSERT INTO #__mytable (' .$db->nameQuote('myField'). ') VALUES (' . $db->quote($mysqlSafeVar) . ')';
$success = $db->execute();

我刚刚遇到在Joomla中使用mysql(I)_real_escape_string()的问题,发现我需要传入db连接作为第一个参数:

$db = JFactory::getDbo();
$myVar = JRequest::getVar('myVarName');
$mysqlSafeVar = msqli_real_escape_string($db->getConnection(), $myVar);
$sql = 'INSERT INTO #__mytable (' .$db->nameQuote('myField'). ') VALUES (' . $db->quote($mysqlSafeVar) . ')';
$success = $db->execute();

你收到警告了吗?文件说,如果找不到要使用的连接,它将发出警告。否则,我建议您将连接句柄放在函数调用中。
getDBO()
实际使用的是哪种连接?它是用
mysql\u connect()
,还是用
mysqli()
,或PDO创建的?正在调用什么API
mysql\u real\u escape\u string()
仅在使用
mysql\u connect()
建立连接时可用。为什么不使用Joomla的getVar?你收到警告了吗?文件说,如果找不到要使用的连接,它将发出警告。否则,我建议您将连接句柄放在函数调用中。
getDBO()
实际使用的是哪种连接?它是用
mysql\u connect()
,还是用
mysqli()
,或PDO创建的?正在调用什么API
mysql\u real\u escape\u string()
仅在使用
mysql\u connect()
建立连接时可用。为什么不使用Joomla的getVar?不幸的是,它仍然输出一个空字符串。不幸的是,它仍然输出一个空字符串。谢谢。我怎么看它逃走了什么?如果我只是回显结果,我实际上看不到它是转义字符。我仍然在学习自己——当我挣扎于这一部分时,我试图通过输入一个“来打破它,看看它是否转义”。在使用JRequest::getVar之前,它坏了,之后就没有了。谢谢。我怎么看它逃走了什么?如果我只是回显结果,我实际上看不到它是转义字符。我仍然在学习自己——当我挣扎于这一部分时,我试图通过输入一个“来打破它,看看它是否转义”。在使用JRequest::getVar之前,它坏了,之后就没有了。