本问题已经有最佳答案,请猛点这里访问。
所以我的代码是这个..
$password=(!isset($_POST['password']));
$username=(!isset($_POST['username']));
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'");
$result = mysql_query($query);
var_dump($result);
$num_rows = $result->$num_rows;
if ($num_rows)
{
echo"username already exist";
}
else
{
$query ="INSERT INTO tb_funcionario (nome_funcionario, username, password) VALUES (
'$_POST[nome_funcionario]',
'$_POST[username]',
'$_POST[password]'
)";;
$result = mysql_query($query) or die (mysql_error());
}
mysql_query($query);
mysql_close($bd_con);
?>
它总是给我"mysql_query()期望参数1是字符串,资源给定",我无法弄清楚如何解决它。
你能帮助我吗?
我最喜欢的一点:$username=(!isset($_POST['username']));
正如@ lvaroG.Vicario指出的那样。 $username=(!isset($_POST['username']));将返回true或false。
我最喜欢的一点:像@lvaroGonzlez这样无用的人批评并且没有贡献解释为什么他们表现得很聪明。 应该是permaban :)
@LiquidCore如果您想了解更多细节,那就称为Cargo cult编程。 它通常是将其他地方发现的代码块拼凑在一起的结果,这些代码块并不是程序员真正理解的。 如你所见,你可以问得很好。 没有必要诉诸个人侮辱(当然,除非你找到一个好的争吵,所谓的一个巨魔)。
@lvaroGonzlez你是第一个发布垃圾的人,他们没有以任何方式解决问题,货物编程与否。 这个社区的精神不是关于谁在学习的笑话。 让自己来吧。:)
这是你的问题:
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'");
$result = mysql_query($query);
您正在第一行运行查询,该查询返回"资源"作为查询的结果。然后在下一行,您尝试使用该资源作为另一个查询再次运行。您不需要第二行,可以在第一行设置$result。
您的代码中有一些不必要/错误的行,尤其是:
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE
username='$username' and password='$password'");
$result = mysql_query($query);
我想你想写:
$query ="SELECT * FROM tb_funcionario WHERE
username='$username' and password='$password'";
$result = mysql_query($query);
你的问题在这里$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'");
那么你正在运行mysql_query($query)并且它正在尝试对第一个语句返回的结果集运行命令,而不是像它实际应该是的字符串
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'");
$result = mysql_query($query);
是不正确的。您应该只是将查询字符串分配给$query - 您正在执行的操作是运行查询一次,然后尝试再次将查询结果作为查询运行。你应该有:
$query ="SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'";
$result = mysql_query($query);
这会给你你寻求的结果。
你的问题来自这些方面:
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'");
$result = mysql_query($query);
你两次调用mysql_query()函数。
你可以做:
$sql ="SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'";
$result = mysql_query($sql);
或者:
$result = mysql_query("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'"; );
$query ="INSERT INTO tb_funcionario (nome_funcionario, username, password) VALUES (
'".mysql_real_escape_string($_POST[nome_funcionario])."',
'".mysql_real_escape_string($_POST[username])."',
'".mysql_real_escape_string($_POST[password])."'
)";
?>
看这个:
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'");
$result = mysql_query($query);
将其更改为:
$query ="SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'");
$result = mysql_query($query);