MySQL in PHP/html - Zeile anzeigen

Jetzt zeigt er einen Fehler in Zeile 23/24 an :

$stmt = $conn->prepare("SELECT bla from bla WHERE id=?");
$stmt->bind_param("i", $_GET['number']);


Fehlerlog:
[Tue Jan 27 10:56:14 2015] [warn] [client 77.20.37.249] mod_fcgid: stderr: PHP Warning: mysqli::prepare(): Couldn't fetch mysqli in /var/customers/webs/ni116573_2/praktikum/Anzeige.php on line 23, referer: http://praktikum.boundlessnw.de/info.php

[Tue Jan 27 10:56:14 2015] [warn] [client 77.20.37.249] mod_fcgid: stderr: PHP Fatal error: Call to a member function bind_param() on null in /var/customers/webs/ni116573_2/praktikum/Anzeige.php on line 24, referer: http://praktikum.boundlessnw.de/info.php

[Tue Jan 27 10:56:14 2015] [error] [client 77.20.37.249] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace., referer: http://praktikum.boundlessnw.de/info.php

Was soll ich in diese BLAH's rein setzen ? :O

EDIT: Sop habs :D der Syntax von dem Befehl ist iwie komisch :O)
 
Zuletzt bearbeitet:
So das ganze muss icvh jetzt nochmal umschreiben da ich gezwungen werde das mit Quarry zu machen ._.
Weil prepare angeblich das GOTO des SQL's ist
 
Aber du machst es doch schon mit einer Query
Das prepare ist nicht automatisch schlecht (und außerdem kein SQL).
In manchen Fällen kann es mit prepare etwas langsamer sein als ohne (in anderen Fällen
dafür viel schneller, wenn sinnvoll eingesetzt), aber auf jeden Fall ist es ein Fehlerrisiko
weniger (escapen vergessen)
 
So umgeschrieben und nur 1 Error :D

Code:
PHP:
<?php
 if(!isset($_GET['number']))
 {
   
 }
 $servername = "127.0.0.1";
 $username = "xxx";
 $password = "xxx";
 $dbname = "xxx";
 $conn = new mysqli($servername, $username, $password, $dbname) or die(mysql_error());

 $query = "SELECT * from Eintrag WHERE ID=".$_Post['ID'];
 $result = $query;
 while ($row = mysql_fetch_array($result)) {
   echo $row['input1'];
 }

 $conn->close();
 ?>
Fehler: Warning: mysql_fetch_row() expects parameter 1 to be resource, string given in /var/customers/webs/ni116573_2/praktikum/Anzeige.php on line 25
(Line 25 ist hier die Line mit der Whileschleife)
 
Zuletzt bearbeitet von einem Moderator:
5 Fehler :rolleyes:

$_GET['number'] oder $_Post['ID'] ?

Dein if mit isset ist sinnlos, wenn es die Abfrage doch ausführen lasst. Es soll die Abfrage verhindern

Mysqli ohne Prepared Statements verwenden (wie du ja willst) kann man schon
machen, aber nicht mit mysql_fetch_array. Das ist die falsche Funktion.

Du hast zwar eine SQL-Abfrage geschrieben, führst sie aber nicht aus.
Nur die Ergebnisse der Ausführung willst du dann trotzdem abholen.

Und ganz schlecht, der schon oben erwähnte Fehler den prepare verhindert hätte (da bist du natürlich
genau draufgestoßen :rolleyes:): Kein escapen. Entweder machst du es selber oder verwendest prepare.
Ohne einem der beiden Sachen ist es ein riesiges Problem, sonst gar nichts.

(Je nach Eingabe wird die Seite einfach nicht funktionieren,
außerdem ist es eine sehr einfach auszunutzende Sicherheitslücke)



PS wegen oben: Sogar goto selber ist nicht immer schlecht, und mit der Meinung stehe ich nciht allein da.
Und wenn du in deinem Praktikum lernst, dass Prepared Statements automatisch schlecht sind würde ich
die anderen Aussagen dieser Leute nur sehr vorsichtig übernehmen.
 
Ne er sagte nicht dass die Grundsätzlich schlecht sind aber er meinte in kleinen Programmen sind die sinnlos wie GOTO in großen
 
Ich kann ja die ganzen Extensions nicht benutzen (php 5.6 ._.) wie ist der nicht-extension-befehl für escapen?
Isset ist behoben!
Wass sol lich in der Schleife denn sonst nehmen? :O
Wie ich führe die nicht aus? :O
 
Ich kann ja die ganzen Extensions nicht benutzen (php 5.6 ._.)
Wovon redest du? Extensions in PHP5.6?
MysqlI gibts zumindest in allen PHP5.x-Versionen
wie ist der nicht-extension-befehl für escapen
Wie wärs einfach mit etwas suchen? Ernsthaft, das hat man in nicht mal 10sec bei Google.
Wass sol lich in der Schleife denn sonst nehmen? :O
Siehe oben.
Wie ich führe die nicht aus? :O
http://php.net/manual/de/control-structures.if.php
 
Warning
This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide and related FAQ for more information. Alternatives to this function include

Dasmein


Sorry, für MySQL bin ich einfach zu doof :/ ich les mir heut nach feierabend was an
 
Zuletzt bearbeitet:
Zurück