2013-05-01 8 views
2

должен помочь входы не вставлены в БД, когда есть апостроф в значениях TextField, им пытаются использовать коды ниже, чтобы избежать», но его не работает,MySQL не принимает апостроф «

function myaddslashes($string){ 
    if(get_magic_quotes_gpc() == 1){ 
     return $string; 
    } else { 
     return str_replace("'", "''", $string); 
    } 
} 

IVE используется это также не дало никаких результатов:

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"); 
    } 

?> 

PS..im новый к php и sql, поэтому я все еще пытаюсь научиться использовать sqli ...

+2

Изучите подготовленные команды mysqli, если вы пытаетесь изучить mysqli - тогда вам не нужно бежать, потому что это сделано для вас –

ответ

0

я смог установил ее, добавив mysql_real_escape_string поля, которое имеет "значение

$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']; 
2

Используйте параметры запроса или что-то, что вызывается при вызове php. Побег цитат является одной из хороших вещей, которые они делают для вас.

0

Mysqli с радостью согласится на одну цитату, если она будет правильно экранирована. , но по какой-то причине вы фактически не применяете ни одну из своих функций к входу. Итак, это единственная твоя проблема.

Также отметим, что error_reporting должна всегда быть E_ALL, а не 0

3

Все строки должны быть экранированы с помощью функции базы данных конкретного. В вашем случае mysql_real_escape_string

Если вы учитесь, вам лучше начать с MySQLi, поскольку расширение MySQL устарело с PHP 5.5.0. Это не сложнее, чем тот, который вы используете.

0

если вы используете

(все книги доступны) как $ при условии, и вы пытаетесь вставить в к MySQL

использовать этот

$subject=$_POST['subject']; 
$disc_str = addslashes($subject); 
"INSERT INTO table name (subject) value('$disc_str')"; 

это работает для меня в Tex tarea with tinymce также

Смежные вопросы