所以我的代码就是这个......
<?php
$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是字符串,资源给定”我无法弄清楚如何解决它。
你能帮助我吗?
答案 0 :(得分:6)
这是你的问题:
$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'");
$result = mysql_query($query);
您正在第一行上运行查询,该查询返回“资源”作为查询的结果。然后在下一行,您尝试使用该资源作为另一个查询再次运行。您不需要第二行,$result
可以在第一行设置。
答案 1 :(得分:3)
您的代码中有一些不必要/错误的行,尤其是:
$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);
答案 2 :(得分:2)
$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);
可以为您提供所寻求的结果。
答案 3 :(得分:2)
您的问题在$query = mysql_query ("SELECT * FROM tb_funcionario WHERE username='$username' and password='$password'");
然后你正在运行mysql_query($query)
并且它正在尝试针对第一个语句返回的结果集运行命令,而不是像它实际应该是的字符串
答案 4 :(得分:1)
看看这个:
$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);
答案 5 :(得分:1)
<?php
$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])."'
)";
?>
答案 6 :(得分:1)
你的问题来自这些方面:
$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'"; );