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";
}