PHP MYSQL警告:MYSQL_query()要求参数1为字符串,资源在

PHP MYSQL警告:MYSQL_query()要求参数1为字符串,资源在,php,mysql,warnings,invite,Php,Mysql,Warnings,Invite,可能重复: 问题在于您的查询。首先,检查您的声明并使用以下内容: $result = mysql_query($sql) or die(mysql_error()); 而不是这个 $result = mysql_query($sql); 因此,您可以看到SQL查询中是否存在任何错误 if (mysql_query($result)) { 尝试mysql\u num\u行。这里有一些错误 1) SQL注入漏洞,永远不要在查询中直接传递超级全局$\u POST或$\u GET或任何其他用户提

可能重复:


问题在于您的查询。首先,检查您的声明并使用以下内容:

$result = mysql_query($sql) or die(mysql_error());
而不是这个

$result = mysql_query($sql);
因此,您可以看到SQL查询中是否存在任何错误

if (mysql_query($result)) {

尝试mysql\u num\u行。

这里有一些错误

1) SQL注入漏洞,永远不要在查询中直接传递超级全局$\u POST或$\u GET或任何其他用户提供的变量! 在将变量放入查询之前,至少对其使用,或者最好查看参数化查询,这是避免SQL漏洞的最佳方法

(二)

这不会检查请求是否返回1行或0行,您应该改为使用此处

if(mysql_num_rows() == 1)  //or whatever you need to check
(三)

应该在页面中的任何内容之前调用session_start()。我不知道为什么在这里重复呼叫、扰乱、破坏、回忆。如果你想要另一个id,只需使用

正如其他人已经说过的,在查询中使用一些错误报告,比如

$result = mysql_query($sql) or die(mysql_error())

以实际查看失败的内容、位置和原因。

您没有测试查询是否存在错误。请参阅mysql_query()上的PHP手册,或者出于好奇,您是从哪里学到这段代码的?因为上面显示了大量的mysql_查询代码,所以不会检查错误,即使PHP手册中的所有示例都会这样做。我想了解为什么你的代码容易受到攻击,我还在学习PHP和mysql,如果这是在线的话,没有一个,只是想了解我想要什么,以及学习如何正确查询,同时做我想要的项目。错误的查询来自我自己的懒惰。很公平:)只需从
$mysql\u query()
获取返回值,如果为false,则输出
mysql\u error()
,查看错误是什么。(C.Ramseyer在下面指出了本案中的主要错误)尝试了这个愚蠢的错误,一开始就不在那里。除了发布的代码外,仍然没有骰子或错误。我已经相应地修改了代码,但仍然没有运气得到“mysql\u num\u rows()期望参数1是资源,字符串给定”
if(mysql_num_rows() == 1)  //or whatever you need to check
session_start();session_unset();session_destroy();
// start a new session
session_start();
$result = mysql_query($sql) or die(mysql_error())