由于我的webhost已经将服务器上的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到text的文本然后再返回但没有成功。我知道这应该很简单,但由于某种原因,我无法使其发挥作用。
答案 0 :(得分:2)
mysqli_real_escape_string:mysqli_real_escape_string (
mysqli $ link ,字符串$escapestr )
其他mysqli功能需要相同的处理。
经验法则:如果某些功能无法按预期工作 - 请先检查手册页。
此外,您需要使API函数使用一致。选择一个API并仅使用其函数,mysqli_ *或mysql_ *,但不能同时使用它们。
答案 1 :(得分:-1)
您是否尝试过使用addslashes()?