2013-06-28 80 views
0

我想作爲函數的參數傳遞的字符串中的「\ n」替換任何CHAR(10)後返回一個新的字符串:如何在這種情況下逃脫報價?

function executerCalcul($initial_string) 
{ 
    $ret = ""; 
    $conn = new mysqli(BDD_SERVER, BDD_USER, BDD_PWD, BDD_NAME); 
    if ($conn->connect_error) { 
     trigger_error('Database connection failed: ' . $conn->connect_error, E_USER_ERROR); 
    } 
    if (stripos($initial_string, "'") === false) 
     $sql = "SELECT REPLACE('$initial_string', char(10 using utf8),'\n') as resultat"; 
    else 
    { 
     // how to write correctly $sql here because we are here in the case when there are single quotes inside the string parameter 
    } 
    $rs = $conn->query($sql); 

    if($rs === false) { 
     trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $conn->error, E_USER_ERROR); 
    } else { 
       $rows_returned = $rs->num_rows; 
    } 
    $rs->data_seek(0); 
    while($row = $rs->fetch_assoc()) { 
     $ret .= $row['resultat']; 
    } 
    $rs->free(); 
    return $ret; 
} 

因此,如何逃脫的字符串的情況下單引號參數包含單引號?

+0

不使用字符串插值,你不需要轉義任何東西。相反,使用準備好的語句。 –

回答

1

SQL標準一雙單引號''應使用。

但仍有mysql_real_escape_string函數。