2014-02-27 77 views
-1

我創建一個註冊網頁,我的網站,這是我收到錯誤消息:誤差註冊頁面PHP

Connected Warning: mysqli_query() expects at least 2 parameters, 1 given in /home/k1003140/www/Group8/connectivity-sign-up.php on line 23 Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/k1003140/www/Group8/connectivity-sign-up.php on line 23

這裏是PHP代碼:

<?php 

include_once("db_connection.php"); 

function NewUser() 
{ 
    $fullname = $_POST['name']; 
    $userName = $_POST['user']; 
    $email = $_POST['email']; 
    $password = $_POST['password']; 
    $query = "INSERT INTO Customer (fullname,userName,email,password) VALUES ('$fullname','$userName','$email','$password')"; 
    // $data = mysqli_query ($db_connection, $query) or die(mysqli_error()); 
    $data = mysqli_query ($db_connection, $query) or die(mysqli_error($db_connection)); 
    if($data) 
    { 
     echo "YOUR REGISTRATION IS COMPLETED..."; 
    } 
} 


function SignUp() 
{ 
    if(!empty($_POST['user'])) //checking the 'user' name which is from Sign-Up.html, is it empty or have some text 
    { 
     $query = mysqli_query("SELECT * FROM Customer WHERE userName = '$_POST[user]' AND  password = '$_POST[password]'") or die(mysqli_error()); 

     if(!$row = mysqli_fetch_array($db_connection, $query) or die(mysqli_error($db_connection))); 
     { 
      newuser(); 
     } 
     else 
     { 
      echo "SORRY...YOU ARE ALREADY REGISTERED USER..."; 
     } 
    } 
} 
if(isset($_POST['submit'])) 
{ 
    SignUp(); 
} 

?> 

我通過My​​sqli連接,但我不知道如何使用它。

+0

可能重複的[mysqli \ _query預計至少有2個參數](http://stackoverflow.com/questions/8073278/mysqli-query-expects-at-least-2 - 參數) – JasonMArcher

回答

1

mysqli_query預計爲連接第一個參數,你只有經過查詢,從文檔

程序風格

mixed mysqli_query (mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ]) 

所以行

$data = mysqli_query ($query) 

首先要有連接變量

$data = mysqli_query ($connection, $query) 

,因爲它是mysqli_error需要連接鏈路以及

string mysqli_error (mysqli $link) 

所以完整的代碼看起來像

data = mysqli_query ($connection, $query) or die(mysqli_error($connection)); 

只要改變$connection與你的變量實際連接

由於方不,我會補充說,你是在mysql injection的風險,你真的應該使用準備好的語句因爲你已經使用mysqli並且它支持它。

$mysqliLink = new mysqli('', '', '', ''); 

當你想執行一個SQL語句它寫成: - - :Learn more here

+0

我仍然收到這個錯誤'連接警告:mysqli_query()期望至少2個參數,第1行給出的/home/k1003140/www/Group8/connectivity-sign-up.php警告:mysqli_error()預計只有1個參數,0在23行/home/k1003140/www/Group8/connectivity-sign-up.php中給出@ @Fabio – user3311898

+0

Downvoter請解釋 – Fabio

+0

我justed編輯的代碼請參閱上面的代碼,然後我得到了另一個錯誤看起來像第30行Parse error:語法錯誤,/ home/k1003140/www/Group8/connectivity-sign-up中意外的T_ELSE。30線上的php @ @Fabio – user3311898

-1

當您使用的mysqli在程序的風格,簡單的代碼寫

$sqlStatement = ''; 
$query = mysql_query($mysqliLink, $sqlStatement); 

你的情況您必須通過以下功能解析鏈接連接: -

function NewUser($mysqliLink) 
{ 
$fullname = $_POST['name']; 
$userName = $_POST['user']; 
$email = $_POST['email']; 
$password = $_POST['password']; 
$query = "INSERT INTO Customer (fullname,userName,email,password) VALUES ('$fullname','$userName','$email','$password')"; 
$data = mysqli_query ($mysqliLink, $query); 

// complete you code. 

} 

什麼我wr ote是非常簡單的,你必須考慮更多的東西作爲防止注射,..,..,..等

0

注意行號。您需要在第23行更改Fabio的更改。

+0

我不明白我做了他所說的仍然沒有得到的地方@Jess Melton – user3311898