在SQL数据库中插入十六进制代码

时间:2018-08-22 15:57:29

标签: php sql forms hex

我试图通过PHP将十六进制代码插入SQL数据库,但是无法完成。我尝试过UNHEX,但没有任何结果。 输入代码:

<input type="color" name="color">

插入PHP代码:

$color = $_POST['color'];
$query = "INSERT INTO `kolor` (`color`) VALUES (UNHEX($color))";

2 个答案:

答案 0 :(得分:1)

我想您不需要UNHEX(),只需按原样存储即可。

PDO是执行查询的一种安全的好方法。

示例:

$host = '127.0.0.1';
$db   = 'test';
$user = 'root';
$pass = '';
$charset = 'utf8mb4';

$options = [
    PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES   => false,
];

$pdo = new PDO("mysql:host=$host;dbname=$db;charset=$charset", $user, $pass, $options);

$sql = "INSERT INTO `kolor` (`color`) VALUES (:color)' ";

$data = [
  "color" => $_POST['color'], 
];

$stmt= $pdo->prepare($sql);
$stmt->execute($data);

您可以在https://phpdelusions.net/pdo上了解有关PDO的更多信息

答案 1 :(得分:0)

进行以下操作:

$query = "INSERT INTO kolor (color) VALUES ('$color')";

但是要小心,因为您有使用此语法的大量SQL注入,因此您需要事先准备好请求。

有关更多信息:https://www.owasp.org/index.php/SQL_injection