開発に XAMPP を使用するマシンが必要です。ファイルをあるマシンから別のマシンに移動したところ、mysqli_set_charset を呼び出してから bind_param を呼び出すとエラーが発生しました。1 台のマシンで動作します。
編集:これは私が得るエラーです:
PHP 致命的なエラー: 非オブジェクトでメンバー関数 bind_param() を呼び出します
私のコード:
$mysqli = new mysqli("localhost", "root", "123", "myDatabase");
mysqli_set_charset($mysqli, "utf8");
//Checks if the user exists
$stmt = $mysqli->prepare("SELECT * FROM profiles WHERE email = ? AND password = md5(?) LIMIT 1");
$stmt -> mysqli_stmt_bind_param("ss", $email, $pass);
$stmt -> execute();
編集#2:
それが動作するマシンは、Mac OS 10.8.1 の XAMPP で PHP 5.3.1 を使用します。XAMPP の新しいバージョンはまだありません。
動作しないマシンは、Windows 7 の XAMPP で PHP 5.4.4 を使用しています。
両方のマシンで動作するという行を削除するとmysqli_set_charset($mysqli, "utf8");
、それ以外の場合は Mac でのみ動作します。
編集#3:
password = md5(?)
justに変更することをテストしたところpassword = ?
、動作しました。パスワードが一致しませんが、エラーは発生しなくなりました。今後 md5 を使用する予定はありませんが、とりあえず使用したいので、文字セットを utf8 に設定する必要があります。どうすれば解決できますか?