php - 文本形式不能接受撇号

标签 php mysql mysqli

我的文本表单不允许在输入字段中出现单个“'”。我收到一个 sql 语法错误。有什么好的方法可以允许在我的文本字段中使用单个撇号吗?

这是我的代码

html

   <input class='what' type='text' name='one' required>
    <textarea name='two' required></textarea>
    <input type='submit'>
    </form>

我的数据库

  // Create connection
    $conn = mysqli_connect($servername, $username, $password, $dbname);
    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }

    $sql = "INSERT INTO whatsgood (one, two)
    VALUES ('$one', '$two')";

    if (mysqli_query($conn, $sql)) {
        echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }

    mysqli_close($conn);
    ?>

任何帮助将不胜感激。谢谢你!

最佳答案

使用addslashes PHP 函数(用斜杠引用字符串)

$sql = "INSERT INTO whatsgood (one, two) VALUES ('".addslashes($one)."', '".addslashes($two)."')";

例子:

<?php
$str = "Is your name O'Reilly?";

// Outputs: Is your name O\'Reilly?
echo addslashes($str);
?>

您还可以使用 mysqli_real_escape_string (考虑到连接的当前字符集,转义字符串中的特殊字符以用于 SQL 语句)

$sql = "INSERT INTO whatsgood (one, two) VALUES ('".mysqli_real_escape_string($conn,$one)."', '".mysqli_real_escape_string($conn,$two)."')";

关于php - 文本形式不能接受撇号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34080984/

相关文章:

php - 在 Php header 重定向后提供反馈

mysql - 在 Foreach 循环容器内的 SSIS DFT 中执行数据转换

php - mysqli 扩展名不存在于 php.ini 文件中

php - mysql中如何通过GROUP BY子句获取最近的记录

php - 检查文件夹是否包含php中任何类型的图像

php - 无法跳转到 MySQL 结果索引 13 上的第 0 行

javascript - 将 php 数组转换为 javascript 数组

MySQL UNION - 检测几个 SELECT 的返回结果

php - 如何在jquery中传递数据库id

php - 如何持续增加 php 的值(value)