可能是重复问题:
Phonegap - Load Values from Database based on a user ID
我正在创建一个需要用户注册的Phonegap应用程序。我通过一个作为Web服务的PHP脚本连接MySQL数据库,并使用AJAX POST/Get方法进行操作。
但无论什么原因,LogCat总是给我返回"There was an error"
(在post的错误函数中)。
更新:
从MySQL的日志中,我得到了这个错误信息:
PHP致命错误:调用非对象的成员函数bindValue()
它指向这一行:$username = $_POST['username']
;
以下是我JS代码的片段:
var u = $("#username").val();
var p = $("#password").val();
var userRegData = $('#registration').serialize();
$.ajax({
type: 'POST',
data: userRegData,
dataType: 'JSONp',
url: 'http://www.somedomain.com/php/userregistration.php',
success: function(data){
if(response==1){
// User can be saved
} else {
// User exsts already
}
},
error: function(e){
console.log('There was an error');
$.mobile.loading ('hide');
}
});
return false;
这是我的 PHP 代码片段。我正在使用 PDO。
$db = new PDO('mysql:host=' . $config['db']['host'] . ';dbname=' . $config['db']['dbname'], $config['db']['username'], $config['db']['password']);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$username = $_POST['username'];
$password = $_POST['password'];
$query->bindValue(':username', $username, PDO::PARAM_STR);
$query->bindValue(':password', $password, PDO::PARAM_STR);
try {
$db->beginTransaction();
$db->query("SELECT `user`.`Username` FROM `user` WHERE `user`.`Username` = :username LIMIT 1");
try {
if ( $query->rowCount() > 0 ) {
$response=1;
echo $response;
}
else {
$response=0;
$db->query("INSERT INTO `user` (`user`.`Username`, `user`.`Password`) VALUES :username, :password");
echo $response;
$db->commit();
}
} catch (PDOException $e) {
die ($e->getMessage());
}
} catch (PDOException $e) {
$db->rollBack();
die ($e->getMessage());
}