Xcode无法连接到SQLITE数据库

时间:2019-12-03 12:40:05

标签: swift xcode sqlite sqlite.swift

我正在尝试使用sqlite3_open()连接到托管在“ http://server/apr/mysqlite.db”上的SQLITE DB,但无法实现连接。我可以通过浏览器浏览器查看数据库文件。

我能够与本地计算机上可用的数据库建立连接,但是找不到任何文档来建立与http://数据库的连接。

任何人都可以帮助我在XCODE中完成SQLITE连接

1 个答案:

答案 0 :(得分:0)

sqlite3_open()无法打开URL,只能打开本地文件。

为了使 <?php // Include config file require_once "config.php"; // Define variables and initialize with empty values $username = $password = $confirm_password = ""; $username_err = $password_err = $confirm_password_err = ""; if (isset($_GET['id'])) { echo $_GET['id']; } // Processing form data when form is submitted if($_SERVER["REQUEST_METHOD"] == "POST"){ // Validate username removed for space // Validate password removed for space // Validate confirm password removed for space } // Check input errors before inserting in database if(empty($username_err) && empty($password_err) && empty($confirm_password_err)){ // Prepare an insert statement $sql = "INSERT INTO users (username, password, referral) VALUES (?, ?, ?)"; if($stmt = mysqli_prepare($link, $sql)){ // Bind variables to the prepared statement as parameters mysqli_stmt_bind_param($stmt, "sss", $param_username, $param_password; $param_referral); // Set parameters $param_username = $username; $param_password = password_hash($password, PASSWORD_DEFAULT); // Creates a password hash $param_referral = $id; // Attempt to execute the prepared statement if(mysqli_stmt_execute($stmt)){ // Redirect to login page header("location: login.php"); } else{ echo "Something went wrong. Please try again later."; } } // Close statement mysqli_stmt_close($stmt); } // Close connection mysqli_close($link); } ?> 能够完成您想做的事情,必须满足以下条件:

  • sqlite3库需要在其中嵌入一个HTTP客户端(不是)。
  • 另一端的服务器需要运行一项服务以接受HTTP请求并将命令传递到所请求的数据库(我不知道有人提供过这种服务)。

可能有人在第二个要点中创建了服务,但如果有的话,您将需要一个不同的sqlite3库,该库实现相同的API,但将您的请求发送到服务器,而不是读写本地文件

如果您的用例兼容,并且该URL上有一个sqlite3数据库,则可以将其下载到本地文件,然后使用常规的sqlite3库打开它。不过,您将无法重新上传所做的任何更改。

ETA

Joakim Danielson是正确的。 Sqlite3旨在嵌入最终用户应用程序中,而不作为客户端服务器数据库管理器。值得阅读Appropriate Uses页面,上面写着:

  

SQLite不与客户端/服务器数据库竞争。 SQLite与sqlite3_open()

竞争