- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在 PHP 5.6 及更高版本上使用旧版 MediaWiki 扩展,但在插入数据库时失败了。
是的,这不是重复的,因为代码不同。
完整的错误是:
Warning: mysql_real_escape_string(): Access denied for user ''@'localhost' (using password: NO)
我尝试更改为 mysqli_real_escape_string
但后来我有:
mysqli_real_escape_string() expects exactly 2 parameters, 1 given on line 235
函数如下:
function Lookup_addLookup ($url, $name, $group)
{
$dbw = wfGetDB(DB_MASTER);
$groupOrder = Lookup_getGroupOrder($group);
$dbw->query ("INSERT INTO ".Lookup_prefix()."lookups (lu_name, lu_url, lu_group, lu_order, lu_group_order) VALUES ('".mysql_real_escape_string($name)."', '".mysql_real_escape_string($url)."', '".mysql_real_escape_string($group)."', 1, $groupOrder)");
Lookup_reOrderGroups();
return true;
}
再往下还有一个:
function Lookup_moveGroupUp($group)
{
$dbw = wfGetDB(DB_MASTER);
$dbw->query ("UPDATE ".Lookup_prefix()."lookups SET lu_group_order = 0 WHERE lu_group = '".mysqli_real_escape_string($group)."'");
Lookup_reOrderGroups();
return true;
}
最佳答案
mysqli_real_escape_string()
需要数据库链接作为第一个参数,这就是它不起作用的原因。
但是,MediaWiki wants us to avoid direct queries , 所以它有 $dbw->insert()
方法,而不是几个 wrapper functions 之一.
使用这样的东西:
function Lookup_addLookup ($url, $name, $group)
{
$dbw = wfGetDB(DB_MASTER);
$groupOrder = Lookup_getGroupOrder($group);
$dbw->insert(
Lookup_prefix()."lookups",
array(
'lu_name' => $name,
'lu_url' => $url,
'lu_group' => $group,
'lu_order' => 1,
'lu_group_order' => $groupOrder
)
);
Lookup_reOrderGroups();
return true;
}
在第二个例子中,使用 $dbw->update()
:
function Lookup_moveGroupUp($group)
{
$dbw = wfGetDB(DB_MASTER);
$dbw->update(
Lookup_prefix()."lookups",
array(
"lu_group_order" => 0
),
array(
"lu_group" => $group
)
);
Lookup_reOrderGroups();
return true;
}
有关更多信息和其他 SQL 包装器,请阅读 different wrapper functions和他们的 documentation .
关于mysql_real_escape_string() : Access denied in DB insert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54711799/
原帖: 我的脚本不工作(它不记录数据)。它在我添加 mysql_real_escape_string 之前工作,所以我想知道我是否没有正确实现它: $array = json_decode($down
如果我在将变量放入 mysql 表之前使用了 mysql_real_escape_string,我是否需要对从表中取出的任何变量再次使用它? 最佳答案 如果要将变量放回数据库,则需要再次使用它。否则,
我正在开发一个使用 mysql.h 库的 C 程序。这是代码: int newproduct(){ char *name;//nombre del prducto char *de
如果我输入 ' 在我的搜索栏中,我收到一个 mysql 错误,因为“刺痛”没有被转义——它认为。 但是我之所以无法转义,是因为我认为它目前不是一个字符串。 搜索框使用 ajax 动态生成搜索结果,就像
我收到 警告:mysql_real_escape_string() [function.mysql-real-escape-string]:用户 'username'@'localhost' 的访问被
我有一个 PHP 脚本,它在从用户填写的表单中获取数据后将一条记录插入到数据库中。我在我的本地机器(WAMP 服务器)上开发并在我的 PHP 脚本中包含以下代码: $name = mysql_real
示例代码: $email = "" . $_POST['email']; $con = mysql_connect("localhost","user","pass") or die('Could
什么时候使用 mysql_real_escape_string 是正确的时间? 当我使用 isset(mysql_escape_string($_GET['param'])) 时是否应该使用它, 当我
我的每个 php 页面的顶部都有以下代码: foreach ($_POST as $key => $value) { if (!is_array($value)) {
我使用 imap_mail (php) 从我的邮件服务器收集电子邮件,在使用 mysql_real_escape_string 后分解结果并将其保存到数据库。 如果我从数据库检索后将其显示在文本区域中
我正在创建一个magento模块,并且在 Controller 中我试图生成一个查询。例如:"INSERT INTO ". $resource->getTableName('mymod/mymodta
我的查询是这样的, ... ON (`Test`.`id` = `Form`.`close_`%)... 它抛出错误,提示Syntax error or access violation: 1064。
这个问题已经有答案了: How to change mysql to mysqli? (12 个回答) 已关闭 2 年前。 由于 mysql_real_escape_string 现已弃用,我必须更改
我们知道,在php脚本中的mysql上执行之前,所有用户输入都必须通过mysql_real_escape_string()函数进行转义。并且知道此函数在用户输入中的任何 ' 或 " 字符之前插入\。假
我粘贴谷歌地图代码 View Larger Map 在文本区域中并使用mysql_real_escape_string(trim($_POST'map'])) 但是从 mysql 表中获取数据时
我正在尝试清理进入数据库的字符串。但使用下面的代码,我没有得到数据库的更新。 第一页以输入形式发布此内容: $note="Here is some example text"; 接收页面: $note
好的。所以我做了一个表格。如果我在从表单中检索到的变量 $usrname (是的,拼写正确)上输入 mysql_real_escape_string ,它会返回我的另一个变量 $verify 为 fa
我不明白为什么 mysql_real_escape_string 需要转义换行符和回车符: \n 和 \r 使用 \n 和 \r 的 SQL 中可能存在哪些安全漏洞? UPDATE tbl SET f
我正在将我的应用程序从 Mysql 扩展移至 PHP PDO。我面临一个奇怪的问题。在我的开发环境中,我的数据库服务器 [MySQL] 和 Web 服务器都位于单个系统中,而在测试环境中,Web 和数
因此,即使使用 mysql_real_escape_string 清理数据,您也可以使用 %27 进行 SQL 注入(inject) %27) SQL INJECTION HERE %2F* 怎么办?
我是一名优秀的程序员,十分优秀!