Php mysql_error()希望参数1是给定的资源字符串

Php mysql_error()希望参数1是给定的资源字符串,php,mysql,mysql-error-1064,Php,Mysql,Mysql Error 1064,我正在为民意测验编写代码。管理员可以创建问题并删除它们。用户可以从下拉菜单中选择答案来回答问题。此下拉菜单动态填充查询请求 现在,我希望在完成轮询时将用户名插入数据库中,这样他就不能进行两次轮询。这就是这里的代码。 这是我正在使用的查询: $idfind = "SELECT `id` FROM `Umfragenteilnahme` WHERE `Username` ='$user'"; $id = mysql_query($idfind) or die (mysql_error()); if(

我正在为民意测验编写代码。管理员可以创建问题并删除它们。用户可以从下拉菜单中选择答案来回答问题。此下拉菜单动态填充查询请求

现在,我希望在完成轮询时将用户名插入数据库中,这样他就不能进行两次轮询。这就是这里的代码。 这是我正在使用的查询:

$idfind = "SELECT `id` FROM `Umfragenteilnahme` WHERE `Username` ='$user'";
$id = mysql_query($idfind) or die (mysql_error());
if($id) {
    while($rpw = mysql_fetch_assoc($id)) {
        $id = $rpw['id']; // Using $rpw->id doesnt work
        echo $id; // it gives the right answer and everything works fine
                  //id= 4 for example
    }  
}
else {
    echo "Fehler"; // it does not report a fail
}
我知道我应该使用新的
mysqli.
标记。代码工作得非常好,查询给出了正确的答案,并且在MySql数据库中也可以工作

但每次它都会出现这个错误

mysql_fetch_assoc()希望参数1是资源,字符串在

或者对于
(mysql\u error())
这个:

mysql_error()希望参数1是资源,字符串在中给出

一切正常,但它显示了这些错误。为什么会发生这些错误?我怎样才能避免它们

编辑:
现在我把它放在代码开头的第一个
后面,您的答案实际上是您的错误消息。您为函数
mysq\u error
提供了SQL查询,它是一个字符串。如前所述,该函数将资源作为参数。资源应该是函数
mysql\u connect
返回的资源

此外,如果您没有为
mysql\u error
提供任何参数,它将使用如上所述的上次打开的链接。删除参数
$idfind
很可能会解决问题。

还没有答案:
你能帮我找个地方吗

<fieldset><legend>mysql_fetch_assoc() expects parameter 1 to be resource, string given (2), ...test.php@21</legend>
            <pre>  14 |         );
  15 |  }
  16 |  else {
  17 |      return false;
  18 |  }
  19 | });
  20 | 
  21 | mysql_fetch_assoc('foo');
  22 | 
</pre></fieldset>
set\u error\u处理程序(函数($errno、$errstr、$errfile、$errline){
if(false!==stripos($errstr,'mysql')){
$file=file($errfile);
$code='';

对于($i=max(0,$errline-8);$i您正在为循环中的$id分配一个字符串,
$id=$rpw['id'];
。下次执行mysql\u fetch\u assoc($id)时,$id是一个字符串,因此会显示警告消息


不要将查询字符串传递给。您可以/应该传递连接资源,即mysql\u connect的返回值。我留下了
echo(mysql\u error())
现在。但当我执行代码时,它仍然在说有问题。但是如果代码提供了正确的答案,怎么可能有问题呢//id?这就是现在的错误
警告:mysql\u fetch\u assoc()期望参数1是资源,字符串在
中给出。感谢您的快速回答。在您发布的代码片段中是否只出现了
mysql\u fetch\u assoc
?好的,实际代码大约有300行,带有html公式,这只是代码中的一个小片段。还有其他
mysql\u fetch\u assoc()
命令。但是代码的其余部分工作得很好,除了我没有使用
mysqli\u fetch..
命令之外,没有任何警告或根本不起作用的东西。基于此函数,没有其他
mysql\u fetch\u assoc
s。警告消息包含文件名和行号。它是否准确地指向您需要的代码“已发布?我尝试尽快发布。我现在没有太多时间。但感谢您的帮助!!好的,我现在尝试发布,我认为最好先完成我的完整代码,直到我可以问另一个问题。否则我只会浪费您的时间。谢谢您的帮助,sry没有像您那样快速响应。@VolkerK我现在就把你的代码放好了,并发布了输出。我希望你现在能帮助我。你太棒了!!现在不再有错误消息了!非常感谢你。但是对于代码的下一步,我需要查询结果在一个变量中。我现在怎么做呢?a)$rpw是一个变量,所以值已经“在”一个中了。b)为变量选择另一个名称。c)如果要基于该变量发送另一个sql查询,请查看是否可以将一个变量放入其中:
$raw['$fragenid2']
?是的,但没有单引号,
$raw[$fragenid2]
,请参阅
Benutzer id: 4
mysql_fetch_assoc() expects parameter 1 to be resource, string given (2), /censored/censored/www/Website2.0/btn_lehrer.php@36

29 | /* The $user is defined at start of code */
30 | /* With the next query i get the user-id from this specific user */
31 | 
32 | $idfind = "SELECT `id` FROM `Umfragenteilnahme` WHERE `Username`    =   '$user'";
33 | $id = mysql_query($idfind)or die (mysql_error());
34 |        if($id){
35 |            
36 |                    while($rpw = mysql_fetch_assoc($id)){
37 |                          $id = $rpw['id'];
38 |                           echo "Benutzer id: $id ";    //fehler       (Warning: mysql_fetch_assoc() expects parameter 1 to be   resource, string given line 15)                                    
39 |                        }  
40 |                      
41 |                }
42 |                else{
43 |                     echo "Fehler bei der Bestimmung der Benutzer id!";
44 |                    }
set_error_handler ( function($errno, $errstr, $errfile, $errline) {
    if (false!==stripos($errstr, 'mysql')) {
        $file = file($errfile);
        $code = '';
        for($i=max(0, $errline-8); $i<min($errline+8, count($file)); $i++) {
            $code .= sprintf('%4d | %s', $i+1, $file[$i]);
        }
        printf('<fieldset><legend>%s (%d), %s@%d</legend>
            <pre>%s</pre></fieldset>',
            htmlspecialchars($errstr), $errno,
            htmlspecialchars($errfile), $errline,
            htmlspecialchars( $code )
        );
    }
    else {
        return false;
    }
});
<fieldset><legend>mysql_fetch_assoc() expects parameter 1 to be resource, string given (2), ...test.php@21</legend>
            <pre>  14 |         );
  15 |  }
  16 |  else {
  17 |      return false;
  18 |  }
  19 | });
  20 | 
  21 | mysql_fetch_assoc('foo');
  22 | 
</pre></fieldset>
while($rpw = mysql_fetch_assoc($id)) {
    echo "Benutzer id: ", $rpw['id'], "\r\n";
}