2016-05-04 4 views
-2

Ich versuche Fehlermeldung zu retten, aber seine Fehler nichtmysql_error() keinen Fehler in PHP-Anzeige

$selectquery=mysql_query("select * from employee where eid='$eid' and name='$name' and ssn='$ssn'"); 
if(mysql_num_rows($selectquery)>0) 
{ 
    $state="success"; 
    $sql="insert into pfupload(eid1,name,ssn,state) values('$eid','$name','$ssn','$state')"; 
    $sqlquery=mysql_query($sql); 
} 
else 
{ 
    $state1= mysql_error(); 
    $sql1="insert into pfupload(eid1,name,ssn,state) values('$eid','$name','$ssn','$state1')"; 
    mysql_query($sql1); 
} 
+0

Übergeben Sie die Verbindungsvariable an mysql_error() ' – Saty

+0

Warum haben Sie eine' state'- und eine 'state1'-Variable? Was ist die Ausgabe für 'var_dump ($ state)' und für 'var_dump ($ state1)'. Wenn die '$ selectquery' leer ist, erhalten Sie keinen Fehler. Auch ware von mysql Injektionen durch Lesen Sie hier: http://StackOverflow.com/Questions/60174/How-CanI-Iprevent-SQL-Injection-in-PHP und die Verwendung von mysql ist veraltet Sie sollten Verwenden Sie 'mysqli', lesen Sie hier: http://php.net/manual/en/intro.mysql.php –

+0

Welchen Fehler würden Sie hier erwarten ...?! – deceze

Antwort

1

Zuerst sicher sein, dass Sie die Protokollierung aktiviert Fehler:

ini_set('display_errors', 1); 
error_reporting(E_ALL); 

Zusätzlich würde ich Ihren Code ein wenig reorganisieren Duplizierung zu entfernen:

$selectquery = mysql_query("select * from employee where eid='$eid' and name='$name' and ssn='$ssn'"); 
$state = mysql_num_rows($selectquery)>0 ? 'success' : mysql_error(); 
$sql1 = "insert into pfupload(eid1,name,ssn,state) values('$eid','$name','$ssn','$state')"; 
mysql_query($sql1); 

Es sollte funktionieren, wenn die Verbindung nicht passieren zu mysql_error(). Wenn Sie nur die Anzahl der Zeilen überprüfen möchten, führen Sie die Abfrage SELECT count(1) FROM employee WHERE eid='$eid' AND name='$name' AND ssn='$ssn' aus und überprüfen Sie dann die Anzahl. Es wird Ihre Ausführung beschleunigen und den Speicherbedarf erheblich senken, da Sie nicht alle Ergebnisse in PHP laden müssen.

1

zeigt Sie müssen de conection Variable mysql_error() passieren.

Außerdem sollten Sie mysqli_ Funktionen anstelle von mysql_ verwenden. Alle mysql_ Funktionen wurden in PHP 5.5.0 veraltet.

More info.