2017-05-16 3 views
-1

habe ich versucht, meine db zu verbinden, aber nichts funktioniert ...Keine Verbindung zu MySQL, falschen Code?

Dies ist der Code, den ich geschaffen habe:

$name ='testdb'; 
$user = 'root'; 
$password = ''; 
$host = 'localhost'; 

$link = new mysqli($name, $user, $password, $host); 

$name = $_POST['name']; 
$message = $_POST['message']; 
$mail = $_POST ['mail']; 

$name = $link->real_escape_string($_POST['name']); 

$message = $link->real_escape_string($_POST['message']); 

$mail = $link->real_escape_string($_POST['mail']); 

$sql = "INSERT INTO test (Name, Message, Mail) VALUES ('$name','$message', '$mail')"; 

$result = $link->query($sql); 

Ich habe alle Schreibweisen allready doppelt geprüft. Kann mir jemand ein paar Tipps geben? Ich bin vielleicht blind geworden.

+0

Erstens Um zu erfahren, sollten Sie ermöglichen [Fehlerberichterstattung] (http://stackoverflow.com/a/21429652/6140684) wenn nicht bereits, weil es Ihnen hilft, das Problem zu verstehen. –

Antwort

1

Scheint Sie mysqli Verbindung nicht initialisiert haben richtig

error_reporting(E_ALL);//display all errors 

$name ='testdb'; 
$user = 'root'; 
$password = ''; 
$host = 'localhost'; 

$link = new mysqli($host, $user, $password, $name); 

Use prepared statements(Prevents SQL injection) 

$sql = "INSERT INTO test (Name, Message, Mail) VALUES (?,?,?)";//placeholders (3placeholders for 3values) 
$statement = $link->prepare($sql);//prepare query. returns true/false 
$statement->bind_param('sss',$name, $message, $mail);//you dont need to escape anymore 
$statement->execute(); //execute safely 
0

Der erste Parameter von mysqli der Hostname ist, tauschte man hostname und databasenameConnect to MySQL

$link = new mysqli($host, $user, $password, $name); 

Sie auch vorbereitete Anweisung verwenden können, um zu verhindern SQL injections

Ein prepared statement ist eine Funktion, mit der dieselben (oder ähnliche) SQL-Anweisungen wiederholt mit hoher Effizienz ausgeführt werden.

$sql = "INSERT INTO test (Name, Message, Mail) VALUES (?,? ?)"; 
$stmt = $link->prepare($sql); 
$stmt->bind_param("sss",$name, $message, $mail); 
$result = $stmt->execute(); 
if ($result) { 
    // query was successful 
}else { 
    // query failure 
} 
0

Bitte verwenden Sie diesen Code unten wird es Ihnen helfen

$name ='testdb'; 
$user = 'root'; 
$password = ''; 
$host = 'localhost'; 

$link = new mysqli($host,$user,$password,$name); 
// Check connection 
if ($link->connect_error) { 
    die("Connection failed: " . $link->connect_error); 
} 
$name = $_POST['name']; 
$message = $_POST['message']; 
$mail = $_POST ['mail']; 

$name = $link->real_escape_string($_POST['name']); 

$message = $link->real_escape_string($_POST['message']); 

$mail = $link->real_escape_string($_POST['mail']); 

$sql = "INSERT INTO test (Name, Message, Mail) VALUES ('$name','$message', '$mail')"; 



if ($link->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $link->error; 
} 

$link->close(); 

grundlegende Dinge in PHP und MYSQL beziehen sich auf diesen Link https://www.w3schools.com/php/

Verwandte Themen