Fred Furunkelstein 2012: Gibt es ein maximum an $row abfragen?

Beitrag lesen

$suchart = $_POST['suchart'];
$suchbegriff = $_POST['suchebegriff'];
$abfrage = "SELECT * FROM pruefung WHERE $suchart LIKE '$suchbegriff'";
$ergebnis = mysql_query($abfrage);

Wie unsicher ist das denn? Für sowas gibts die "Fristlose"!

Informiere Dich über mysql_real_escape_string() und über die Problematik des Kontextwechsels allgemein. Wenn Du Zahlen erwartest dann nimm wenigstens intval() oder floatval() um den Typ sicherzustellen.

Um Dein Problem zu lösen wissen wir nicht genug. Wie wäre es, wenn Du Dir  $abfrage erst mal ausgeben lässt und durch eine Direkteingabe in einem MySQL-Client prüfst, was überhaupt zurück kommt?

Ferner: Was sagen denn das Error-Log? Möglicherweise enthält eine der Spalten große Datenmengen. Dann könnte auch der Fall eintreten, dass der erlaubte Speicher nicht reicht. Daneben ist die Skriptlaufzeit als weitere Grenze schon angesprochen worden.

Primitiver Test:
Was passiert bei einem:

$suchart = mysql_real_escape_string($_POST['suchart']);
$suchbegriff = mysql_real_escape_string($_POST['suchebegriff']);
$abfrage = "SELECT * FROM pruefung WHERE $suchart LIKE '$suchbegriff'";
$ergebnis = mysql_query($abfrage);
$i=0;
while($row = mysql_fetch_object($ergebnis))
{
  print ++$i."<br />";
}