2016-05-01 9 views
0

Ich möchte mit einem INSERT in einer MySQL-Datenbank tun:Wie String mit Apostroph INSERT 'Symbol

$sql = "INSERT INTO table (title1) VALUES ('$myVar')"; 

aber das Problem ist $myVar die einfachen Anführungszeichen enthalten (' Symbole, zum Beispiel in ‚Idiot‘). Kann mir jemand sagen, wie man mit einzelnen Anführungszeichen in der Variablen als ein Buchstabe und nicht als ein Stück Code umgehen soll?

(ich weiß, gibt es Beiträge über diese im Forum schon, aber ich weiß nicht wirklich, ihre Lösungen verstehen, so sorry für Doppelbuchung)

+4

Entweder "Flucht" den Wert von '$ myVar'; oder (noch besser) wechseln Sie zur Verwendung vorbereiteter Anweisungen mit Bind-Variablen, wenn die Bindung für Sie daraus entfernt wird –

Antwort

1

Sie könnten versucht sein, jedes einzelne Zitat durch zwei von ihnen zu ersetzen.

wie so

            
 
  
              
    $myvar = "idiot\'s"; 

            
 

But resist the urge and escape it instead:

<?php $var = "Hello !! idiot's"; 

mysql_real_escape_string($var);?> 

Oder even better, use PDO

+0

gute Idee verwenden, aber ich kann sie nicht von Hand entkommen. und die 'mysql_real_escape_string ($ var);' funktioniert nicht für mich :( – Sariel

+1

es hängt davon ab, was Sie verwenden, wenn Sie PDO-Anweisung verwenden, dann keine Notwendigkeit zu arbeiten, wird es automatisch tun. Wenn Sie mysql oder mysqli dann verwenden müssen Escape-Funktionen verwenden –

+1

@NareshKumar - PDO wird es nicht für Sie automatisch tun .... Wenn Sie Bind-Variablen verwenden, wird es automatisch für Sie getan, und Sie können Bind-Variablen mit entweder PDO oder MySQLi –

0

Verwenden mysqli_real_escape_string wie folgt aus:

$myVar= mysqli_real_escape_string($link,$myVar); 

und dann Ihre Anfrage.

Es ist ratsam, auch PDO zu verwenden!

+0

Was ist der $ link? – Sariel

+0

@ Sariel, siehe: http://php.net/manual/en/mysqli.real-escape-string.php – Johan

+0

@Sariel ist die Verbindungszeichenfolge. – Thamilan