如何将云数据库与phonegap应用程序链接?

问题描述 投票:0回答:1

因此,我正在尝试使用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进行此操作的任何好的在线资源。他们真的很模糊。在此先感谢!

php jquery sql ajax phonegap
1个回答
0
投票

也许为时已晚,但在最坏的情况下会帮助其他人。

Cordova和服务器

[我注意到,在调用AJAX时,您没有在JavaScript代码中提供IP地址

url: "[NO IP HERE]js/DBcall.php",

Cordova应用程序是其自己的Web服务器,因此,如果没有IP,则无法附加远程PHP代码。因此,它需要您服务器(即您的计算机)的IP才能访问它。

如果您在同一网络上,则必须在本地IP前面加上前缀:

url: "192.168.1.5/js/DBcall.php",

Val未定义

您可以看到:dataType: 'json',因此,实际上,您的val对象将是一个json字符串。

您没有给我足够详细的信息,所以我将进行一点推断。假设您要向服务器发送两个变量:cat和dog

您将拥有一个看起来像这样的代码:

data : JSON.stringify({ cat: MyCatValue, dog: MyDogValue })

您的PHP代码是80年代的。

对不起,我认为您所看到的教程一定足够老。

要用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类,但这是帮助您的简短代码

© www.soinside.com 2019 - 2024. All rights reserved.