2016-07-29 5 views
0

Ich weiß, dass es Tonnen von Fragen dazu gibt, aber ich kann das Problem mit meinen Codes nicht finden.mysqli_error() beim Verbinden von PHP mit MYSQL

Hier sind meine PHP-Codes:

<?php 
//set the connection variables 
$hostname = "localhost"; 
$username = "root"; 
$password = "password"; 
$database = "fyp"; 
$filename = "C:/scripts/nea.csv"; 

//connect to mysql database 
$myConnection = mysqli_connect($hostname, $username, $password, $database) 
or die("Error " . mysqli_error($myConnection)); 

// open the csv file 
$fp = fopen($filename,"r"); 

//parse the csv file row by row 
while(($row = fgetcsv($fp,"500",",")) != FALSE) 
{ 
//insert csv data into mysql table 
    $sql = "INSERT INTO neaweather (ValidTime, Date, Time, Lat, Lon, AreaName) VALUES ('".mysql_escape_string($row[0])."','".mysql_escape_string($row[1])."','".mysql_escape_string($row[2])."','".mysql_escape_string($row[3])."','".mysql_escape_string($row[4])."','".mysql_escape_string($row[5])."')"; 
    $query = mysqli_query($myConnection,$sql); 
    if($query){ 
     echo "row inserted\n"; 
    } 
    else{ 
     echo die(mysql_error()); 
    } 
} 
fclose($fp); 

//close the db connection 
mysqli_close($myConnection); 

?> 

Die Codes hat perfekt funktioniert gut, wenn ich es gestern lief.

Hier sind die Details zu MYSQL Tabelle:

enter image description here

enter image description here

enter image description here

Hier sind die Fehler, wenn ich die Codes lief:

C:\scripts>php neaweather.php 
PHP Warning: mysqli_connect(): (HY000/2002): No connection could be made 
because the target machine actively refused it.in C:\scripts\neaweather.php 
on line 10 

Warning: mysqli_connect(): (HY000/2002): No connection could be made because 
the target machine actively refused it. in C:\scripts\neaweather.php on line 
10 

PHP Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given 
in C:\scripts\neaweather.php on line 10 

Warning: mysqli_error() expects parameter 1 to be mysqli, boolean given in 
C:\scripts\neaweather.php on line 10 
Error 

Dies ist Zeile 10 des Code:

//connect to mysql database 
$myConnection = mysqli_connect($hostname, $username, $password, $database) 
or die("Error " . mysqli_error($myConnection)); 

Antwort

0

Ihr Screenshot sagt Ihr MySQL-Server auf Port 3307. In der Standardeinstellung 3306 ausgeführt wird verwendet. Sie müssen diese ersetzt werden:

$myConnection = mysqli_connect($hostname, $username, $password, $database) or die("Error " . mysqli_error($myConnection)); 

mit diesem:

$myConnection = mysqli_connect($hostname, $username, $password, $database, 3307) or die("Error " . mysqli_error($myConnection)); 
+0

@CharlotteDunois Nein, der Fehler HY000/2002 der Regel bedeutet, dass es kein MySQL-Server dort, wo er versucht, zu verbinden –

+0

was meinst du kein MySQL-Server ? – plzhelpmi

+0

@plzhelpmi Ich meine, dass es keinen mysql Server gibt, der auf Verbindungen am Host und dem Port hört, an dem Sie versuchen, sich zu verbinden. –

0

Der Standardport für MySQL ist 3306. In Ihrem MySQL-Client Sie verwenden 3307. Vielleicht müssen Sie den Port in Ihrer PHP-Set Anwendung auch.

myConnection = mysqli_connect($hostname, $username, $password, $database, 3307) 
    or die("Error " . mysqli_error($myConnection)); 
0

Fügen Sie Port in Ihrem mysqli_connect, da es 3306 nimmt, wenn nicht

liefern

mysqli_connect(host,username,password,dbname,port);

0

Wie dazu:

PHP Warning: mysqli_error() erwartet Parameter 1 Mysqli zu sein , boolean gegeben in C: \ scripts \ neaweather.php in Zeile 10

... liegt daran, dass Sie Verbindungsfehler falsch abrufen. Wenn mysqli_connect() fehlschlägt, gibt es keine Ressource zurück (was für?), Aber false, also mysqli_error($myConnection) (die eine Ressource erwartet) schlägt fehl. Es gibt ein Beispiel, bei dem PHP manual page mit dem richtigen Mechanismus:

$link = mysqli_connect("127.0.0.1", "my_user", "my_password", "my_db"); 
if (!$link) { 
    echo "Error: Unable to connect to MySQL." . PHP_EOL; 
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL; 
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL; 
    exit; 
} 
+0

Ich verstehe nicht, tut mir leid – plzhelpmi

+0

Alles klar ... Einfach 'mysqli_error ($ myConnection)' löschen und 'mysqli_connect_error () '. –