2016-07-28 7 views
0

Ich erstelle Datei in PHP mit fwrite. Ich muss die Datenbank an meine index.php anhängen. Mein Zweifel ist, kann ich die folgende Zeile auf fwrite drucken? Ich habe es versucht, aber es zeigt Fehler. Gibt es einen Weg dafür?Über fwrite in PHP

$fd =fopen("database.php","w"); 

fwrite($fd, "$dbhost='localhost'; 
    $dbuser='$user'; 
    $dbpass='$pass'; 
    $dbname='$email'; 
    $dbh = new PDO('mysql:host=localhost;dbname=$email', $dbuser, $dbpass);"); 

fclose($fd); 
+2

* Ich habe es versucht, aber es zeigt Fehler * - welcher Fehler hat es angezeigt? – Ben

+0

@AravindVenkat, möchten Sie irgendwelche tatsächlichen Variablenwerte in der Zeichenfolge oder alle von ihnen sollten Literale sein? – FirstOne

+0

Es ist wie ich Konto für den neuen Benutzer erstellen, so muss ich seinen Benutzernamen oder E-Mail als seinen Datenbanknamen –

Antwort

1

Es werden Fehler angezeigt, weil die Variablen nicht maskiert sind. Um dieses Problem zu beheben, tauschen Sie die Anführungszeichen entweder durch einfache Anführungszeichen aus oder fügen Sie einen umgekehrten Schrägstrich() vor $ hinzu.

$fd=fopen("database.php","w"); 

fwrite($fd,"\$dbhost='localhost'; 
\$dbuser='\$user'; 
\$dbpass='\$pass'; 
\$dbname='\$email'; 

\$dbh=newPDO('mysql:host=localhost;dbname=\$email',\$dbuser,\$dbpass);"); 

fclose($fd); 

Oder die Anführungszeichen fix:

fwrite($fd, '$dbhost="localhost"; 
$dbuser="$user"; 
$dbpass="$pass"; 
$dbname="$email"; 

$dbh = new PDO("mysql:host=localhost;dbname=$email", $dbuser, $dbpass);'); 

Beide funktionieren sollte.

Wenn Sie Variablen an den Text übergeben möchten (wie $ user, $ pass, $ email), entgehen Sie ihnen nicht.

$fd=fopen("database.php","w"); 

fwrite($fd,"\$dbhost='localhost'; 
\$dbuser='$user'; 
\$dbpass='$pass'; 
\$dbname='$email'; 

\$dbh=newPDO('mysql:host=localhost;dbname=$email',\$dbuser,\$dbpass);"); 

fclose($fd); 

Quote Version:

fwrite($fd, '$dbhost="localhost"; 
$dbuser="' . $user . '"; 
$dbpass="' . $pass . '"; 
$dbname="' .$email . '"; 

$dbh = new PDO("mysql:host=localhost;dbname=' . $email . '", $dbuser, $dbpass);'); 
+0

Bitte geben Sie an, wie das op es beheben kann;) – FirstOne

+0

Die Korrekturen hinzugefügt. Beides sollte funktionieren. – Janno

+0

Ich werde meine Antwort erneut bearbeiten, so dass $ user, $ pass und $ email Strings sein können. – Janno

0

Welche Fehler (e) erhalten Sie? Hast du alle vars deklariert?

Wenn Sie $ dbuser = '$ user' zwischen "" eingeben, dann denkt php, dass die vars bereits existieren, also wenn sie nicht Fehler bekommen.

Die Sache, die Sie versuchen, ist nicht wirklich möglich.

+1

Es sagt, Sie können nicht innerhalb String, das oben genannte funktioniert gut !! –

+0

in der Tat, stimme ich zu –