mysql_query () ожидает, что параметр 1 будет строкой, ресурс указан

поэтому мой код это ..

<?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 будет строкой, указанным ресурсом», и я не могу понять, как его решить.

Может мне помочь?

Solutions Collecting From Web of "mysql_query () ожидает, что параметр 1 будет строкой, ресурс указан"

Это ваша проблема:

 $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'"); $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'");

то вы запускаете mysql_query($query) и пытаетесь запустить команду в отношении набора результатов, возвращаемого первым оператором, а не строки, как это должно быть на самом деле

Посмотри на это:

 $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'"); $result = mysql_query($query); 

mysql_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'"; ); 
 <?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])."' )"; ?>