I am trying to use the mysqli_real_escape_string() Function in a query.
Aber du bist eigentlich nicht. In Ihrer Anfrage verwenden Sie mysql_real_escape_string()
.
Plus diese Abfrage ist fehlerhaft, so würde es sowieso nicht funktionieren. Deine Zitate sind an den falschen Stellen. Versuchen Sie Folgendes:
$get_query = "SELECT P FROM Product WHERE Product_Id = " . (int) mysqli_real_escape_string($Product_Id);
Da $Product_Id
wird ein integer
gegossen wird, werden Sie nicht einpacken müssen, um es in Anführungszeichen in der Abfrage (unter der Annahme Product_Id
Spalte ist integer-basierte, da Sie Gießen es eine Ganzzahl, ich nehme an, es ist).
Und die Art Guss (int)
aus dem Argument bewegt tatsächlich innerhalb mysqli_real_escape_string()
zu vor der Funktion ist das, was Sie suchen. Es ist zwar nicht notwendig, $Product_Id
zu diesem Zeitpunkt zu übertragen, da es redundant ist und tatsächlich mehr Probleme aufwerfen könnte, als es unter bestimmten Umständen lösen würde (zB angenommen, $Product_Id
wurde irgendwie auf einen String gesetzt [$Product_Id = 'Marcus'
], und Sie werfen es dann auf ein Ganzzahl: (int) $Product_Id
würde 0
zurückgeben, aber kein Fehler). Es würde auch eine negative ganze Zahl durchgehen, von der ich annehme, dass du keine negativen $Product_Id
hast, oder? Es gibt viel bessere Möglichkeiten, Variablentypen zu erkennen und zu verarbeiten, bevor sie an eine Abfrage gesendet werden. Aber wir können uns ein anderes Mal damit beschäftigen.
In Ihrer Abfrage hatten Sie eine fehlerhafte Single-Quote (WHERE Product_Id ='
), die einen Parsing-Fehler verursacht.
[Little Bobby] (http://bobby-tables.com/) sagt [Ihr Skript ist für SQL Injection Attacks gefährdet.] (Http://stackoverflow.com/questions/60174/how-can-i -prevent-sql-injection-in-php). Sogar [die Zeichenfolge zu entkommen] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape-string) ist nicht sicher! Erfahren Sie mehr über [vorbereitete] (http://en.wikipedia.org/wiki/Prepared_statement) Anweisungen für [MySQLi] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php). –
Bitte lesen Sie [Strings] (http://php.net/string). Deine Zitate sind falsch. –
Sie müssen den Unterschied zwischen SQL und PHP lernen, da sie verschiedene Sprachen sind. mysql_real_escape_string() 'ist eine PHP-Funktion, keine SQL-Funktion. –