Если результаты mysql = 1, то . Не работает?

#php #mysql #sql

#php #mysql #sql

Вопрос:

Привет, я хочу проверить, есть ли готовый пользователь в БД с тем же именем пользователя, прежде чем добавлять его в БД… но я получаю белую страницу.

 $sql2="SELECT * FROM users WHERE username='$user' ";
$result2=msyql_query($sql2,);
if (mysql_num_rows($result2)==0) { 
echo "A account is all ready here" ;

 }
else{
  

Это основной бит, который он проверяет.

Вот мой полный код:

 include('config.php');

ini_set('display_errors',1); 
error_reporting(E_ALL);


print_r ($_SESSION) ;

if ($_SESSION['number_three'] == 3 ) {

  $user = mysql_real_escape_string($_POST['username']);
$pass = mysql_real_escape_string($_POST['password']);
$email = mysql_real_escape_string($_POST['email']);

$avatar = mysql_real_escape_string($_POST['avatar']);
$starter = mysql_real_escape_string($_POST['starter']);
$gender = mysql_real_escape_string($_POST['gender']);

$_SESSION['start'] = $starter;

$sql = "SELECT * FROM pokemon WHERE pic='$_SESSION[start]'";
$result = mysql_query($sql) or die(mysql_error());
$values = mysql_fetch_array($result);


$sql2="SELECT * FROM users WHERE username='$user' ";
$result2=mysql_query($sql2,);
if (mysql_num_rows($result2)==0) { 
echo "A account is all ready here" ;

 }
else{


$_SESSION['test'] = $values['name'];


mysql_query("INSERT INTO users 
(username, password, email, avatar, gender) VALUES
('$user','$pass','$email','$avatar','$gender'  )
 ") or die(mysql_error());  



 mysql_query("INSERT INTO user_pokemon 
(pokemon, belongsto, slot) VALUES
('".$_SESSION['test']."','$user','1'  )
 ") or die(mysql_error());  


  unset($_SESSION['number_three']); 


} else {

echo " You do not ment to be here ! Go Away !";


}
}
  

Если я удаляю верхнюю часть кода в первом бите, скрипт работает, но не проверяет, находится ли пользователь уже в БД ….. с помощью скрипта, теперь я получаю белую страницу с верхним битом кода в первом бите почтового кода, и я не получаюкакие-либо ошибки….

Комментарии:

1. У вас много синтаксических ошибок в коде. Включите обмен сообщениями об ошибках или просмотрите журналы ошибок PHP.

2. Разве вы не хотите проверить, если mysql_num_rows($result2)==1 , а не если mysql_num_rows($result2)==0 ?

3. Нет, я хочу проверить, есть ли у пользователя учетная запись, а не если у пользователя нет учетной записи

4. Этот форум предназначен для помощи в написании кода. Для людей, которые не видят ошибок или у которых есть хорошие другие программисты, это ошибка! так что взрослей!

5. попробуйте также добавить E_STRICT, если вы <PHP 5.4.0

Ответ №1:

 $result2=mssql_query($sql2,); 
  

Вы звоните mssql_query , а не mysql_query .

Ответ №2:

mssql_query ? Попробуйте mysql_query вместо этого.

Комментарии:

1. все еще получаю белую страницу после ее изменения

2. Проверьте свой журнал ошибок php. (или добавьте error_reporting(E_ALL); перед вашим кодом).

3. у меня есть, вы можете видеть по моему коду и не получаете ни одного… только белая страница

4. Вы не включили сообщение об ошибках в начале своего кода, вы добавили его после включения другого файла.

5. Я поставил его после включения ….. и по-прежнему не показывает ошибок, думаю, мне не хватает { или} некоторые были

Ответ №3:

Используйте PDO с выбросом исключения:

 try {
    $PDO = new PDO($dsn, $username, $password, array(PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));

    //use $PDO->query(); Errors will be thrown and you'll be able to see them.  This way you don't have to check the boolean return values on queries.

} catch(PDOException $error) {
    echo $error->getMessage();
}
  

Комментарии:

1. 1 — в 2012 (почти 2013) на самом деле больше нет оправдания использованию mysql_* функций; они устарели по какой-то причине .

Ответ №4:

Я не уверен, что это единственная проблема, но, во-первых, в строке, где вы выполняете этот второй запрос, вы вызываете mssql_query вместо than mysql_query , который является функцией запроса для баз данных Microsoft SQL Server, и не знаете, как получить результаты обратно из MySQL.

Комментарии:

1. Я изменил это, но все равно получаю белую страницу

Ответ №5:

  1. Попробуйте добавить E_STRICT, если у вас более старый PHP, чем 5.4.0.
  2. Добавьте or die (mysql_error()); , чтобы узнать, есть ли ошибка в запросе.
  3. Попробуйте использовать if (!mysql_num_rows($result2)) или if (mysql_num_rows($result2) < 1)