2016-11-18 4 views
0

ich einfach msql basiert Glossar haben - die von php5.4 nach dem Upgrade nicht mehr funktionieren 5.6.28php5.6 Variable ist nicht sichtbar für Code

In Form php i eine Variable senden wie page.php?word=xxx

Adresse

in page.php es sollte $ word von table.word mit table.definition erhalten

Verbindung mit Datenbank funktioniert.

Fehlerprotokoll sieht

array(1) { ["word"]=string(5) "xxx" } bool(true) 

Warnung: mysqli_fetch_array() erwartet 1 Parameter MySQLi_Result werden, string gegeben

mein Code

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

$configfile = "config.php"; 
require $configfile; 
$db = mysqli_connect("$host", "$username", "$password") or die ("could not connect to mysql"); 
mysqli_select_db($db, "$databasename") or die ("no database"); 
mysqli_query($db, "SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); 

function mysqli_result($db,$row=0,$col=0){ 
    $numrows = mysqli_num_rows($db); 
    if ($numrows && $row <= ($numrows-1) && $row >=0){ 
     mysqli_data_seek($db,$row); 
     $resrow = (is_numeric($col)) ? mysqli_fetch_row($db) : mysqli_fetch_assoc($db); 
     if (isset($resrow[$col])){ 
      return $resrow[$col]; 
     } 
    } 
    return false; 
} 

$word = ""; 

var_dump($_GET);  
var_dump(isset($word)); 

if($word) 
    {  
     $getWord=mysqli_query($db, "SELECT word,definition FROM mdglossary WHERE word LIKE '$word' ORDER BY word"); 
    } 
    else {....} 

if($getWordArray=mysqli_fetch_array($getWord, MYSQLI_BOTH)) 
    { 
    do 
     { 
     echo "...."; 
     } 
    while($getWordArray=mysqli_fetch_array($getWord)); 
    } 
else {....} 

Ich versuche zu finden Lösung "Hundret" mal per Internet und dieser Seite, aber ich kann einfach nicht verstehen, was passiert ist und warum es überhaupt nicht funktioniert.

+0

Ihre Abfrage schlägt fehl ... Sieht so aus, als ob Sie tatsächlich eine Abfrage vom Typ 'ALTER TABLE' wünschen. –

+0

Direkt über '$ getWord = mysqli_query ...' versuche, 'echo $ word;' hinzuzufügen, um zu sehen, ob die Variable gesetzt ist. – Jacey

+0

Nur eine Anmerkung, aber dieser Code ist anfällig für SQL-Injektion. Außerdem habe ich das Gefühl, dass du das aufräumen musst. "In Form sende ich eine Variable an Adresse wie page.php? Word = xxx in page.php sollte $ word von table.word mit table.definition erhalten", denn wenn du es bist Will man es von der Anfrage bekommen, sollte es einfach $ _GET ['word'] sein – kyle

Antwort

0

Sie haben nichts anderes gesetzt.

$word = ""; 

dann Ihre sql so aussehen

SELECT word,definition FROM mdglossary WHERE word LIKE '' ORDER BY word 

Also Ihr in es für ein Wort Spalte mit nichts suchen. Ist das deine Absicht?

+0

nein - ich versuche nur Variable zu setzen um dies mit xxx aus Adresse zu füllen - ohne dass das auch nicht funktioniert – Marcin

+0

huh? Sie setzen nichts in Ihrem Code auf, es ist egal, was Sie für get verwenden, da Sie es auf '' in Ihrem Code gesetzt haben, es überschreibt das Get – ATechGuy

Verwandte Themen