Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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 连接';真正的"逃逸"字符串';在添加到数据库之前添加文本_Php_Mysql_Mysqli - Fatal编程技术网

Php 连接';真正的"逃逸"字符串';在添加到数据库之前添加文本

Php 连接';真正的"逃逸"字符串';在添加到数据库之前添加文本,php,mysql,mysqli,Php,Mysql,Mysqli,我想在$\u POST['mp']之后添加单词“Megapixels”,以便在“mp”文本框中输入12时,将1200万像素保存到数据库中 在PHP中,我将传递的“mp”值存储在变量“$mp”中: $mp = $cameras->real_escape_string($_POST['mp']); 我试过以下方法 $mp = $cameras->real_escape_string($_POST['mp'] . "Megapixels"); $mp = $cameras->rea

我想在$\u POST['mp']之后添加单词“Megapixels”,以便在“mp”文本框中输入12时,将1200万像素保存到数据库中

在PHP中,我将传递的“mp”值存储在变量“$mp”中:

$mp = $cameras->real_escape_string($_POST['mp']);
我试过以下方法

$mp = $cameras->real_escape_string($_POST['mp'] . "Megapixels");
$mp = $cameras->real_escape_string($_POST['mp']) . "Megapixels";
我相信这将是非常容易做到的,我只是错过了一些东西

谢谢你的帮助

代码更新:

<?php 
    if (isset($add)) {
        /* GET FROM POST */
        $brand = $cameras->real_escape_string($_POST['brand']);
        $category = $cameras->real_escape_string($_POST['category']);
    $model = $cameras->real_escape_string($_POST['model']);
    $mp = $cameras->real_escape_string($_POST['mp']);
        /* QUERY */
        if (mysqli_query($cameras, "INSERT INTO models(
            /* ROW NAME */
            brand, category, model, mp

            ) VALUES(
            /* VARIABLE NAME */
            '$brand', '$category', '$model', '$mp'

            )")) {
            header("Location: http://admin.specced.co.uk?suc=3");
        } 
    }
?>

在处理
$\u POST
数组之前,请尝试更改$\u POST['mp']的值

$_POST['mp'].='Megapixels';
$mp = $cameras->real_escape_string( $_POST['mp'] );

什么不起作用?什么是照相机?陈述连接?为什么不使用预先准备好的语句,那么您就不必考虑转义字符串。再说一次,您显示的代码中有什么不起作用?表中的列是否有百万像素?列类型是什么?它是一种字符串类型吗?当然有一种方法不需要预先准备好的语句,但是你可以接受SQL注入。“这是一个后端系统,所以我不担心”。。。担心。这种不经意的解雇是你陷入严重麻烦的原因。将准备好的语句与占位符值一起使用,就像你的生命取决于占位符值一样,因为它可能会。互联网是一个充满敌意的地方,仅仅因为密码字段后面有东西并不意味着它是安全的。如果你没有使用预先准备好的语句,有人可能会在你的代码中发现一个漏洞,然后通过你的登录层,就像它根本不存在一样。不幸的是,这不起作用,只会导致页面崩溃,没有显示错误。真的吗?刚刚参加了一个小测验。测试是,在特定表单
$\u POST['MAX\u FILE\u SIZE']的表单target中;退出($_POST['MAX_FILE_SIZE'])
输出的
786432香蕉
其中
786432
是允许的大小…显然对我不起作用,如果是其他原因导致它不起作用,是否还有其他代码可以显示?鉴于上面的数据转储
real_escape_string
只返回一个字符串,看起来该值正在连接。它在任何方面都不是神奇或特别的。