当文本字段值中有撇号时,需要帮助输入不会插入到数据库中,我试图使用下面的代码来逃避'但它不起作用,
function myaddslashes($string){
if(get_magic_quotes_gpc() == 1){
return $string;
} else {
return str_replace("'", "''", $string);
}
}
香港专业教育学院也用这个无济于事:
function check_input($value)
{
// Stripslashes
if (get_magic_quotes_gpc())
{
$value = stripslashes($value);
}
// Quote if not a number
if (!is_numeric($value))
{
$value = "'" . mysql_real_escape_string($value) . "'";
}
return $value;
}
这是我的PHP代码:
<?php
error_reporting(0);
require 'include/DB_Open.php';
$RemedyTicketNo = $_POST['RemedyTicketNo'];
$PhoneNumber = $_POST['PhoneNumber'];
$Category2 = $_POST['Category2'];
$Category3 = $_POST['Category3'];
$Status = $_POST['Status'];
$Createdate = $_POST['Createdate'];
$Date = $_POST['Date'];
$Severity = $_POST['Severity'];
$BanType = $_POST['BanType'];
$XiD = $_POST['XiD'];
$Ticket = $_POST['Ticket'];
if (isset($RemedyTicketNo))
{
$sql="INSERT into tbl_main (ars_no, phone_number, category_1, category_2, status, create_date, resolved_date, trouble_type_priority, ban_type, employee_id_name)
VALUES ('".$RemedyTicketNo."', '".$PhoneNumber."', '".$Category2."', '".$Category3."', '".$Status."', '".$Createdate."', '".$Date."', '".$Severity."', '".$BanType."', '".$XiD."')";
$result=mysql_query($sql);
header("Location: wireless_new.php");
}
?>
P.S ...我是php和sql的新手,所以我还在尝试学习使用sqli ...
答案 0 :(得分:3)
应使用特定于数据库的函数对所有字符串进行转义。在您的情况下mysql_real_escape_string
如果您正在学习,最好从MySQLi开始,因为自PHP 5.5.0起不推荐使用MySQL扩展。这并不比你正在使用的那个困难。
答案 1 :(得分:2)
使用查询参数或调用php等效项。转义引号是他们为您做的好事之一。
答案 2 :(得分:0)
另请注意,error_reporting应始终为E_ALL
,而不是0
答案 3 :(得分:0)
我能够通过添加mysql_real_escape_string来修复它,该字段具有'value
$RemedyTicketNo = $_POST['RemedyTicketNo'];
$PhoneNumber = $_POST['PhoneNumber'];
$Category2 = $_POST['Category2'];
$Category3 = **mysql_real_escape_string** ($_POST['Category3']);
$Status = $_POST['Status'];
$Createdate = $_POST['Createdate'];
$Date = $_POST['Date'];
$Severity = $_POST['Severity'];
$BanType = $_POST['BanType'];
$XiD = $_POST['XiD'];
$Ticket = $_POST['Ticket'];
答案 4 :(得分:0)
如果您正在使用
(所有书都可用)作为$ subject,你试图插入到mysql
使用此
$subject=$_POST['subject'];
$disc_str = addslashes($subject);
"INSERT INTO table name (subject) value('$disc_str')";
它在Textarea中也适合我使用tinymce