php - mysqli_real_escape_string 无法正常工作

标签 php mysql mysqli trim

在进行 MySQL INSERT 查询之前,我尝试同时使用 mysqli_real_escape_stringtrim。我的代码如下:

<?php
$fname = mysqli_real_escape_string($dbc, trim($_POST['fname']));
$sname = mysqli_real_escape_string($dbc, trim($_POST['sname']));
$occ = mysqli_real_escape_string($dbc, trim($_POST['occ']));
$twitter = mysqli_real_escape_string($dbc, trim($_POST['twitter']));
$email = mysqli_real_escape_string($dbc, trim($_POST['email']));
$skype = mysqli_real_escape_string($dbc, trim($_POST['skype']));
$topic1 = mysqli_real_escape_string($dbc, trim($_POST['topic1']));
$topic2 = mysqli_real_escape_string($dbc, trim($_POST['topic2']));
$topic3 = mysqli_real_escape_string($dbc, trim($_POST['topic3']));
$avoid1 = mysqli_real_escape_string($dbc, trim($_POST['avoid1']));
$avoid2 = mysqli_real_escape_string($dbc, trim($_POST['avoid2']));
$avoid3 = mysqli_real_escape_string($dbc, trim($_POST['avoid3']));
$cr = mysqli_real_escape_string($dbc, trim($_POST['cr']));

if ((!empty($fname)) && (!empty($sname)) && (!empty($email)) && (!empty($topic1))) {
    $dbc = mysqli_connect('host', 'user', 'password', 'database') or die('Error connecting to MySQL server');
    $query = "INSERT INTO initial_details (fname, sname, occ, twitter, email, skype, topic1, topic2, topic3, avoid1, avoid2, avoid3, cr) VALUES ('$fname', '$sname', '$occ', '$twitter', '$email', '$skype', '$topic1', '$topic2', '$topic3', '$avoid1', '$avoid2', '$avoid3', '$cr')";
    $result = mysqli_query($dbc, $query);
    if (!$result) {
        mysqli_close($dbc);
        echo 'Duplicate';
    } else {
        mysqli_close($dbc);
        echo 'Success - entry added';
    }
} else {
    echo 'Error';
}   
?>

使用上面的代码我得到“错误”消息,但是如果我删除 mysqli_real_escape_string() 并只使用 trim 我能够成功插入我的条目。

为什么我不能在这种情况下使用 mysqli_real_escape_string()

最佳答案

$dbc = mysqli_connect 必须先于所有 mysqli_real_escape_string 调用才能使其工作。这是因为您需要一个事件的 mysqli 连接才能使用该功能。

关于php - mysqli_real_escape_string 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9055974/

相关文章:

php - 用一个sql查询选择两行

PHP 不再被解析?

php - 使用 PHP 和 MySQL 进行地理位置半径搜索

php - Wordpress:Ajax 无法插入、查询和结果数据

php - 如何在逗号分隔的行值中使用 codeigniter

mysql - 我如何在 Wordpress 的 MySQL 中查询具有特定元值和注册日期的用户列表?

php - 删除隐藏的非 ASCII 字符 [PHP 或 MySQL]

PHP 到 EasyPHP MySQL 服务器 1 秒连接延迟

PHP + mySQLi 最后插入的 id

php - 我想要 count 的值并想在其他查询中使用它。这怎么可能?