use*_*790 6 php mysql jquery pdo cordova
可能重复:
Phonegap - 根据用户ID从数据库加载值
我正在创建一个需要用户注册的Phonegap应用程序.我这样做是通过PHP脚本充当MySQL数据库的Web服务并使用AJAX POST/Get方法.
出于某种原因,LogCat总是给我"There was an error"(落在帖子的错误函数中).
更新:
从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;
Run Code Online (Sandbox Code Playgroud)
这是我的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());
}
Run Code Online (Sandbox Code Playgroud)
应该是这样的
您的HTML 页面
<html>
<body>
<script>
function checkIfUserCanBeSaved(){
var userRegData = $('#registration').serialize();
$.ajax({
type: 'POST',
data: userRegData,
url: 'http://www.somedomain.com/php/userregistration.php',
success: function(data){
if(response==1){
alert('user found');
} else {
alert('user saved')
}
},
error: function(e){
console.log('There was an error');
$.mobile.loading ('hide');
}
});
return false;
}
</script>
<form id="registration">
<input type="text" name="username">
<input type="text" name="password">
<input type="button" onclick="checkIfUserCanBeSaved()" value="submit">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
您的PHP 页面
$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'];
try {
$db->beginTransaction();
try {
$query = $db->prepare("SELECT user.Username FROM user WHERE user.Username = :username LIMIT 1");
$query->bindValue(':username', $username, PDO::PARAM_STR);
$query->execute();
if ( $query->rowCount() > 0 ) {
$response=1;
echo $response;
}
else {
$response=0;
$query = $db->prepare("INSERT INTO user ( username, password ) VALUES ( :username, :password )" );
$query->bindValue(':username', $username, PDO::PARAM_STR);
$query->bindValue(':password', $password, PDO::PARAM_STR);
$query->execute();
echo $response;
$db->commit();
}
} catch (PDOException $e) {
die ($e->getMessage());
}
} catch (PDOException $e) {
$db->rollBack();
die ($e->getMessage());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2110 次 |
| 最近记录: |