2016-05-21 18 views
-1

これは私のコードでは間違っていますか?実行したときにブラウザでこのエラーが発生する警告:mysqli_query mysqli、C:\ wamp \ www \ login \ core \ function \ users.phpの4行目の整数。 "..助けが必要です。 私のコードは以下の通りです:警告:mysqli_query()は、パラメータ1がmysqliであると想定しています。整数が指定されています

user.php

<?php 
require('core/database/connect.php'); 
global $username; 
function user_exists($con,$username){ 
$username = sanitize($username); 
$query = mysqli_query($con,"SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username'") OR die(mysqli_error()); 
return (mysqli_fetch_assoc($query) ==1) ? true : false; 
} 
function user_active($username){ 
$username = sanitize($username); 
$query = mysqli_query($con,"SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `active` = 1") OR die(mysqli_error()); 
return (mysqli_fetch_assoc($query) ==1) ? true : false; 
} 
?> 

** connect.php ***

<?php 
$connect_error = 'sorry,we are experiencing connection problem.'; 
$con = mysqli_connect('localhost','root','') or die($connect_error); 

mysqli_select_db($con,'login_registration') or die($connect_error); 

?> 

機能は

<?php 
include 'core/init.php'; 

if(empty($_POST) === false){ 
$username = $_POST['username']; 
$password = $_POST['password']; 

if(empty($username) || empty($password)){ 
    $errors[] = 'You need to enter a username and password'; 
}else if(user_exists($con,$username) === false){ 
    $errors[] = 'The account dosen\'t exit.Please register'; 
}else if(user_active($username) === false){ 
    $errors[] = 'Please u have not login into ur account'; 
}else{ 
    //here 
} 
print_r($errors); 
} 
?> 

を呼び出しを教えてください私のコードで何が間違っています。事前にお礼します。

+0

。あなたの現在のスタイルは非常に不愉快です:1.あなたは何も検出せず、何も処理していません。2.正確には効率的ではない方法で、それぞれのクエリに対して新しい接続を設定します。 – arkascha

+0

私はtiを割り当てようとします。 ** $ con **のような変数は、このエラーメッセージが表示されます**未定義の変数:C:\ wamp \ www \ login \ core \ function \ users.phpの6行目** –

+0

変数 '$ con'を使うと、その変数が関数スコープ内で利用可能でないことは明らかです。変数を使う前に、 '$ _GLOBALS ['con']'を参照するか、グローバル変数$ conを追加するか、関数に注入するのが良いでしょう: 'function user_exists($ con、 $ username) '...しかし、最善の解決策は、内部メソッドのすべてを包むシンプルなデータベースクラスを実装することです。そうすれば、クラスプロパティ内で接続を保存することができます。そして、あなたはエラー処理とロギングを一度だけ実装しなければならない。何度も何度も繰り返す必要はない。 – arkascha

答えて

0

新しい接続をmysqli_connectで開き、別のファイルにconnection.phpを含めて、user.phpにその変数を使用します。あなたは `mysqli_connect()`いくつかのオブジェクトの内部または後で使用するために、少なくとも変数の結果を保存したい

connection.php

<?php 
    $con = mysqli_connect('127.0.0.1','root',''); 
?> 

user.php

<?php 
    require_once($_SERVER['DOCUMENT_ROOT'] . 'Project Name/' . 'core/database/connection.php'); 

    function user_exists($username){ 
     $username = sanitize($username); 
     $query = mysqli_query($con, "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username'") OR die(mysql_error()); 
     return (mysql_result($query,0) ==1) ? true : false; 
    } 

    function user_active($username){ 
     $username = sanitize($username); 
     $query = mysqli_query($con, "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `active` = 1") OR die(mysql_error()); 
     return (mysql_result($query,0) ==1) ? true : false; 
    } 
?> 
+0

私は、このエラーメッセージが表示されています。未定義の変数:C:\ wamp \ www \ login \ core \ function \ users.phpの6行目 –

+0

なぜそうですか? –

+0

urヘルプに感謝しますが、同じエラーが発生しています..undefined variable con –

関連する問題