2016-12-13 3 views
0
//-------------------------------------------------------------------------- 
// php script for adding data from mysql database 
//-------------------------------------------------------------------------- 

$ip = $_GET['ip']; //for debugging sake, will be POST from Ajax 
$key = substr(md5(microtime()),rand(0,26),5); //random referral ID - will implement exist analysis 
echo $ip; //debugging 
$dbhost = 'localhost'; 
$dbuser = user; 
$dbpass = 'pass'; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass); 

if(! $conn) { 
    die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("database", $conn); 
$tbl_name = "refs"; 
$sql="INSERT INTO $tbl_name(ip, key)VALUES('frfr', 'grgr')"; 

if (!mysql_query($sql,$con)) { 
    die('Error: ' . mysql_error()); 
} 
echo "1 record added"; 

Ich bin mir nicht sicher, ob es mein Digital-Ozean-Server ist oder was, aber die einzige Syntax meine PhpMyAdmin als Abfrage akzeptieren ist als INSERT INTO Refs ( ip , Schlüssel ) VALUES ("insert","432") mit Doppel zitierte Werte. Ich kann nicht scheinen, dass dies in PHP implementiert wird, ohne einen Fehler bei der Ausgabe oder eine Unbekannte Spalte in der 'Feldliste' zu bekommen.PHP MySQL Query einfügen konsistente Fehler

Ähnliche Fragen vorschlagen Junk nicht druckbare Zeichen aus dem Kopieren-Einfügen, aber ich habe meinen Code im Editor neu eingegeben. Danke für alle Hilfe

Ich erstelle übrigens ein grundlegendes Überweisungssystem, die angeforderten IPs in 'Refs' Tabelle mit einem Schlüssel oder ID speichern.

+1

http://stackoverflow.com/questions/1346209/unknown-column-in-fieldlist-error-on-mysql-update-query –

+1

wow, verwenden Sie dies auf einem Live-Server? –

+0

Ihnen fehlt ein Leerzeichen vor VALUES. – deChristo

Antwort

3

key ist ein Reservewort und muss daher mit backtique maskiert werden. Zusammen mit diesem haben Sie auch Abstandsproblem. Ihre Abfrage sollte wie folgt aussehen:

INSERT INTO refs(ip,`key`) VALUES ('insert','432') 

Verwenden Sie niemals ein Reservierungswort als Spalten- oder Tabellenname. Im Zweifelsfall müssen Sie alle in der Abfrage vorhandenen Spalten verlassen.

Beginnen Sie zu MySQL Documentation für weitere Informationen. Es ist viel einfacher, als es als Frage im Stackoverflow zu posten.

+0

Ok, dieser Code gibt mir immer noch einen Fehler. Ich habe versucht, die "Schlüssel" -Spalte zu id zu ändern und mit und ohne das zu versuchen, aber es scheint keinen Unterschied zu machen. Der Fehler in meinem Protokoll ist [13-Dec-2016 10:55:53 UTC] PHP Warnung: mysql_query() erwartet Parameter 2 als Ressource, Null gegeben in/home/username/public_html/newref.php in Zeile 21 – user3026679

+0

@ user3026679 Das liegt daran, dass Sie mysql und nicht mysqli verwenden. Daher müssen Sie die Verbindung nicht der Abfrage zuweisen. 'mysql_query ($ sql, $ con)' => 'mysql_query ($ sql)' ALSO: '$ con 'ist nicht definiert ... Sie haben möglicherweise einen Tippfehler gemacht, sollte $ conn sein, falls nötig. –

+0

@ user3026679, das ist ein anderes Problem suchen Sie immer wieder diese Fehlermeldung in Google oder Stackoverflow. Sie werden Tausende von Beispiel erhalten, wie dieses http://stackoverflow.com/questions/23142689/warning-mysql-query-expects-parameter-2-to-be-resource – Rahul