我应该如何使用PHP在mysql数据库中插入文本?

时间:2016-05-14 08:25:41

标签: php mysql mysqli

如何使用PHP在mysql数据库中插入文本消息。

我的代码:

<?php

$message = htmlspecialchars($_POST['message']);
$message = mysqli_real_escape_string($connection, $message);

mysqli_query($connection, "INSERT INTO messages (messages) VALUE ('$message')");
?> 

我的问题:

当我在消息文本区域输入此符号(°)时,它不会插入任何内容。

4 个答案:

答案 0 :(得分:1)

您应该更喜欢使用预处理语句而不是转义字符串。

$connection = new mysqli('localhost', 'user', 'password', 'database');

if (!($stmt = $connection->prepare('INSERT INTO `messages` (`messages`) VALUES(?);')))
{
  echo "error {$connection->errno} on prepare: {$mysqli->error}";
}


if (!$stmt->bind_param('s', $message))
{
  echo "error {$stmt->errno} on bind param: {$stmt->error}";
}

if (!$stmt->execute())
{
  echo "error {$stmt->errno} on execute: {$stmt->error}";
}

答案 1 :(得分:0)

尝试引用这样的值:

mysqli_query($connection, "INSERT INTO messages (messages) VALUE ('$message')");

答案 2 :(得分:0)

在执行查询之前输入此代码

mysqli_set_charset($con,"utf8");

并将列的排序规则设置为

utf8_general_ci

答案 3 :(得分:-1)

使用base64_encodebase64_decode

这是一些例子。

$str = '° some special chars ';

$str_encoded = base64_encode($str);
echo $str_encoded; //ready to be inserted to the DB
$str_decoded = base64_decode($str_encoded);
echo  $str_decoded; // retrieved and decoded