2011-07-05 16 views
0

このコードは、Windowsではうまく動作しますが、Ubuntu 11.04ではうまく動作しません。
これらのOSと同じMySQLバージョンの両方でPHP 5.3.5を取得しました。UbuntuのPrepared Statementには、Windowsではなく、エラーが表示されます。

私のコード

$dba_host='localhost'; 
$dba_name='root'; 
$dba_pass=''; 
$dba_db='sn'; 
$con=mysqli_connect($dba_host,$dba_name,$dba_pass,$dba_db) or die('Connection Refused !'); 

$stmt = mysqli_prepare($con, "SELECT UID,Name,Trace from LOGIN where email=? and password=? LIMIT 1"); // Line 50 
mysqli_stmt_bind_param($stmt, "ss", $_POST['login'],$_POST['password']); 
mysqli_stmt_execute($stmt); 
mysqli_stmt_bind_result($stmt, $uid, $name, $trace); 
mysqli_stmt_fetch($stmt); 
mysqli_stmt_close($stmt); 

エラー

Warning: mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, boolean given on line 50 
Warning: mysqli_stmt_execute() expects parameter 1 to be mysqli_stmt, boolean given on line 51 
Warning: mysqli_stmt_bind_result() expects parameter 1 to be mysqli_stmt, boolean given line 52\ 
Warning: mysqli_stmt_fetch() expects parameter 1 to be mysqli_stmt, boolean given on line 53 
Warning: mysqli_stmt_close() expects parameter 1 to be mysqli_stmt, boolean given on line 54 

追加情報
私はrootユーザーだ、と私は1としてphpMyAdminの

+0

コードでUbuntuでエラーが発生していると言っている場合は、どのエラーが表示されているのかを教えてください。 –

+0

私のコードを更新しました – Sourav

+0

[警告:mysql_fetch_ *はパラメータ1がリソース、ブール値のエラーを予期します](http://stackoverflow.com/questions/11674312/warning-mysql-fetch-expects-parameter- 1-to-be-resource-boolean-given-error) –

答えて

0

エラーが見つかりました。 UbuntuのPHP/MySQLは、識別子の大文字と小文字が一致しない場合、テーブルを見つけるのに十分スマートではありません。したがって、表LOGINloginは完全に異なります。

+0

あなたはMySQLがUbuntuで異なって動作することを意味します.. –

+0

うん、Windowsの 'SQL'テーブルと 'sql'テーブルは同じですがUbuntuではありません。 – Sourav

+0

これを見てください:http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html –

0

を通じて表を参照してくださいすることができますそれは私の理解です接続の問題私は空白のパスワードがあることがわかります...私はまたubuntu.In ubuntuで実行しているので、あなたはパスワード@設定時間をmysql rootアカウントに与えなければなりませんので、それをチェックしてください。 私はかなりあなたが接続の問題があると確信しています。他に何かコメントがあればチェックしてください。私はそれを解決します

データベース内の同じ名前のLOGINテーブルでも確認してください。

Usually database name or Table name is Case Senstive. 
+0

は、XAMPPではなくLAMPPを実行しています.PMAにはパスワードがありません。それは接続の問題だった場合**接続が拒否されたことを示す必要があります** ** – Sourav

3

警告:mysqli_stmt_bind_param()は、パラメータ1は、その場合に

ライン50

について説明ブールは、明らかに、mysqli_prepareは mysqliのSTMTリソースを返さないmysqli_stmtされることを期待しますブール値(おそらくは「false」)になります。

$query = "SELECT UID,Name,Trace from LOGIN where email=? and password=? LIMIT 1"; 
if(!mysqli_prepare($con, $query)) { 
    echo mysqli_error($con); 
} 

実際に何が悪かったのかが表示されます:あなたは、次のようにmysqliのが戻ってきた最新のエラーを要求することができます。防御的プログラミングを学ぶ:機能がいつもうまくいくとは思わないでください。遅かれ早かれ悪いことが起こるでしょう。

関連する問題