2014-02-07 32 views
3

我是PHP OOP的新手,所以這個問題一定很愚蠢。 我無法通過PHP創建SQL查詢。我已經多次閱讀代碼,但是我無法找到任何差異,甚至編輯也沒有顯示任何錯誤。我使用PHP 5.5.13,MYSQL 5.5.24和APCHE Server 2.2.22。可捕捉的致命錯誤:類mysqli_stmt的對象無法轉換爲字符串

以下是代碼:

Test_signup.php

<!DOCTYPE HTML> 
    <html> 
     <head> 
      <title> 
      Test Sign Up 
      </title> 
     </head> 
     <body> 
       <form action = "Signup.php" method = "POST" name = "test_signup"> 
       Full Name: <input type = "text" name = 'full_name'> 
       User Name: <input type = 'text' name = 'user_name'> 
       Email: <input type = 'text' name = 'email_add'> 
       <input type = "submit" name = "submit"> 
      </form> 

     </body> 
    </html> 

現在來到Signup.php

<?php 
$con = new mysqli('localhost', 'root', '', 'my_database'); 
     if ($con->connect_error) 
     { 
     echo 'Failed to connect' . $con->connect_error; 
     } 
     else 
     { 
     echo 'Connected'; 
     $stmt_chk_email = $con->prepare('SELECT * FROM `user_information` WHERE `Email` = ?'); 
     $stmt_chk_email->bind_param('s', $_POST['email_add']); 
     echo $stmt_chk_email; 
?> 

當嘗試運行這段代碼,我m收到錯誤:

Object of class mysqli_stmt could not be converted to string

當然,原始查詢比這裏發佈的要大得多。我已經編輯了查詢的後面部分,因爲我發現問題存在於SQL「SELECT」語句中,但我無法弄清楚。請幫助我。 謝謝。

+1

你好像缺少一個右括號'}''後回聲$ stmt_chk_email;'一兩件事。 –

+0

你確定你可以'回聲'類似的東西嗎? – tadman

+0

你還缺少'execute()' - 你可能打算使用'$ stmt_chk_email-> execute();'而不是'echo $ stmt_chk_email;' –

回答

2

你不能迴應這個

回聲$ stmt_chk_email;

你也許想呼應這個

 $stmt_chk_email = $con->prepare('SELECT column1 ,column2,... FROM `user_information` WHERE `Email` = ?'); 
    $stmt_chk_email->execute(); 
    $stmt_chk_email->store_result(); 
    $stmt_chk_email->bind_result($column1 ,$column2,.....); 
    $stmt_chk_email->fetch(); 
    echo $column1; 
    echo $column2 ; 
    ..... 
+0

那麼代碼如何知道「?」值將通過POST方法派生? 我的意思是要求上面的代碼沒有說明電子郵件將從用戶的表單派生。 – saadi123

相關問題