0

由于我的虚拟主机已将服务器上的 php 从 5.2 更新到 5.3,因此如果文本包含撇号,我将无法更新数据库中的任何字段。我尝试使用 mysql_real_escape_string() 没有成功。

我努力了....

    $id = uniqid();
    $case_account = $_POST['case_account'];
    $contact = ucwords($_POST['contact']);
    $subject = mysqli_real_escape_string(ucfirst($_POST['name']));
    $desc = mysqli_real_escape_string(ucfirst($_POST['description']));
    $resolution = mysqli_real_escape_string(ucfirst($_POST['resolution']));
    $account_name = $_POST['case_account_name'];
    $entered_by = $_POST['entered_by'];

    $sql="INSERT INTO cases (id, account_id, name, description, resolution, account_name1, created_by, date_entered) VALUES ('$id', '$case_account','$subject', '$desc', '$resolution', '$account_name', '$entered_by', NOW())";
    $result = mysqli_query($sql)or die(mysqli_error());

我也尝试在实际查询中使用它(我只尝试过 $subject 进行测试)。

$sql="INSERT INTO cases (id, account_id, name, description, resolution, account_name1, created_by, date_entered) VALUES ('$id', '$case_account',".mysqli_real_escape_string."('$subject'), '$desc', '$resolution', '$account_name', '$entered_by', NOW())";
        $result = mysql_query($sql)or die(mysql_error());

我还尝试将数据库中的字段更改为文本,从 varChar 更改为文本,然后再返回,但没有成功。我知道这应该很简单,但由于某种原因我无法让它工作。

4

2 回答 2

2

mysqli_real_escape_string : mysqli_real_escape_string ( mysqli $link , string$escapestr )
其他 mysqli 函数需要同样的处理。

经验法则:如果某些功能无法按预期工作 -请先查看手册页

此外,您需要使 API 函数的使用保持一致。选择一个 API 并仅使用其功能,mysqli_* 或 mysql_* 但不能同时使用两者。

于 2013-04-26T16:39:55.297 回答
-1

您是否尝试过使用addlashes()

于 2013-04-26T16:38:13.957 回答