因此,我正在尝试使用phonegap编写移动应用程序,以管理库存。我需要它与基于云的SQL数据库进行通信。我想知道如何读写云中的SQL数据库,以及如何在phonegap中进行设置的基础知识。我之前读过一点,我想我理解这个概念,但是我只是不知道如何编写代码,我很想学习。到目前为止(从阅读其他stackoverflow线程开始),这就是我所拥有的:
更新:我制作了一个Google Cloud SQL数据库,并在我的计算机上安装了gcloud sdk和google cloud sdk代理。不过,不确定在构建应用程序时这将如何工作。另外,我仍然不知道如何使Ajax正常工作以连接到代理。
我有一段代码,应该是一个调用php文件的ajax请求(但是它说“ val”是未定义的,我不知道应该将“ val”定义为)。我也有不知道如何设置的php代码。我试图将请求发送到本地SQL XAMPP数据库。
AJAX:
function callDB() {
$.ajax({
url: "js/DBcall.php",
type: "post",
data: val,
dataType: 'json',
success: function(data){
$('#result').html(data.status +':' + data.message);
$("#result").addClass('msg_notice');
$("#result").fadeIn(1500);
},
error:function(){
$("#result").html('There was an error updating the settings');
$("#result").addClass('msg_error');
$("#result").fadeIn(1500);
}
});
}
PHP:
$serverName = "127.0.0.1\\inventory-manager,3306"; // serverName\instanceName
$connectionInfo = array( "Database"=>"inventory-manager", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn ) {
echo "Connection established.<br />";
}else{
echo "Connection could not be established.<br />";
die( print_r( sqlsrv_errors(), true));
}
任何帮助将不胜感激!我真的很想学习如何做,但是我找不到使用phonegap进行此操作的任何好的在线资源。他们真的很模糊。在此先感谢!
也许为时已晚,但在最坏的情况下会帮助其他人。
[我注意到,在调用AJAX时,您没有在JavaScript代码中提供IP地址
url: "[NO IP HERE]js/DBcall.php",
Cordova应用程序是其自己的Web服务器,因此,如果没有IP,则无法附加远程PHP代码。因此,它需要您服务器(即您的计算机)的IP才能访问它。
如果您在同一网络上,则必须在本地IP前面加上前缀:
url: "192.168.1.5/js/DBcall.php",
您可以看到:dataType: 'json'
,因此,实际上,您的val
对象将是一个json字符串。
您没有给我足够详细的信息,所以我将进行一点推断。假设您要向服务器发送两个变量:cat和dog
您将拥有一个看起来像这样的代码:
data : JSON.stringify({ cat: MyCatValue, dog: MyDogValue })
对不起,我认为您所看到的教程一定足够老。
要用PHP与MySQL数据库联系,我建议您像这样使用PDO2:
$host = 'localhost';
$dbname = 'MY_DB_NAME';
$user = 'root';
$pass = '';
try {
$dbh = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$stmt = $dbh->prepare("INSERT INTO animals ( dogName, catName ) values ( :dogName, :catName )");
$stmt->bindParam(':dogName', $dogName);
$stmt->bindParam(':catName', $catName);
$dogName = 'foo';
$catName = 'bar';
$stmt->execute();
$dbh = null;
} catch (PDOException $e) {
file_put_contents('error_log.txt', $e->getMessage() . PHP_EOL, FILE_APPEND);
}
不是最佳方法,您应该通过示例使用单例PDO2类,但这是帮助您的简短代码