2016-11-18 41 views
0

可见我有简单的基于mSQL的词汇 - 它阻止php5.4升级后的工作到PHP 28年6月5日php5.6变量不是代码

在形式上我送一个变量来解决诸如page.php?word=xxx

in page.php它应该从table.word中获取$ word和table.definition

与数据库的连接正在工作。

错误日志看起来

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

警告:mysqli_fetch_array()预计参数1被mysqli_result,串给出

我的代码是

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 {....} 

我试图找到通过互联网和这个页面解决“hundret”时间,但我不明白发生了什么ned和为什么它根本不起作用。

+0

你的查询失败...看起来你实际上想要一个ALTER TABLE类型的查询。 –

+0

正好在'$ getWord = mysqli_query ...'上面'尝试添加'echo $ word;'以查看是否正在设置变量。 – Jacey

+0

只是一个注释,但是这个代码很容易被SQL注入。另外我觉得你需要清除它“在表单中,我发送一个变量来解决像page.php?word = xxx在page.php它应该从table.word与table.definition获得$ word”,因为如果你想要从请求中得到它应该只是$ _GET ['word'] – kyle

回答

0

您已将词语设置为等于无。

$word = ""; 

那么你的SQL看起来就像这样

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

所以你想找什么也没有在一个字列。这是你的意图吗?

+0

no - 我试着设置变量用xxx来填充这个地址 - 没有这个也不行 – Marcin

+0

呵呵?你在你的代码中设置了一句没错的东西,它不会影响你使用的代码,因为你已经在你的代码中将它设置为'',它将覆盖get – ATechGuy