2009-09-28 98 views
0

如何在PHP中将爆炸字与mysql varchar进行比较?
此代码产生我想要什么,但它也给这个错误PHP - 在PHP中将爆炸字与mysql varchar进行比较

veranderenwachtwoordjij
致命错误:调用一个成员函数FETCH_ASSOC()一个非对象......

$word = "Also, to be safe, change your password regularly... you don't have to be obsessive about it: every three hours or so should be enough. And because erring on the side of caution is always a good idea, fake your own suicide and change your identity at least once a year."; 

$pieces = explode(" ", $word); 

$x = 0; 
while($x < word_count($word)) { // word count function returns int (51) 
    $aPiece = $pieces[$x]; // change $pieces[$x] to 'you' and then it works 
    $result = $conn->query("SELECT * FROM dict WHERE english='$aPiece'"); 

    $z = 0; 
    while($z < $num_result) // $num_result returns amount of rows in database 
    { 
    $row = $result->fetch_assoc(); //error line is here 
    echo stripslashes($row['dutch']); 
    $z++; 
    } 

    $x++; 
} 
+0

自从我做任何PHP以来,这已经很长时间了。他们是否弃用'for'循环? – Johnsyweb 2010-09-06 09:41:45

回答

0

我认为

$row = $result2->fetch_assoc();

应该

$row = $result->fetch_assoc();

因为您似乎没有任何地方有$结果。

+1

oops ..这是一个错字 应该是$ row = $ result-> fetch_assoc(); – Azam 2009-09-28 19:01:15

1

我想问题来自您的测试语句中的don't:您忘记使用mysql_real_escape_string等函数来避开引号。

例如:

在$ result2-
$aPiece = mysql_real_escape_string($pieces[$x]); 
$result = $conn->query("SELECT * FROM dict WHERE english='$aPiece'"); 
0

$ RESULT2> FETCH_ASSOC();不正确的变量,它应该是

$result->fetch_assoc(); 

由您必须删除,以便找到的话在数据库中标点符号的方式(我觉得)你的第一线之一应(前的爆炸)与此类似:

$words = strtr($words, ',.:!',''); 
+0

它已经在word_count函数中:) – Azam 2009-09-28 19:46:52