通过 ajax 将变量发布到 mysql db - phonegap
Posted
技术标签:
【中文标题】通过 ajax 将变量发布到 mysql db - phonegap【英文标题】:Post variable via ajax to mysql db - phonegap 【发布时间】:2015-09-13 08:16:04 【问题描述】:我只想将一个简单的变量从我的 phonegap 应用程序发布到 mysql 数据库。但它不起作用。 db 显示空结果。
Mysql数据库长这样,Tablename是user
行:
user (varchar 25),vip (varchar 1),call (varchar 1)
在我的项目顶部我插入:
<script type="text/javascript" src="js/tcPlugin.js"></script>
<script type="text/javascript" src="js/phoneApp.js"></script>
<script type="text/javascript" src="js/start.js"></script>
start.js 是我的 ajax 请求文件 - 其他两个工作正常,所以我想没有问题
我的 start.js 文件如下所示:
$(document).ready( function()
var email = "john@web.de";
$.ajax(
type: 'post',
url: 'http://www.blablabla.de/phone/action.php',
data:
data: "email" : email ,
//data:email,
,
success: function(result)
console.log(result);
);
我的 action.php 看起来像这样:
<?php
$dbhost = "bla";
$dbuser = "bla";
$dbpass = "bla";
$dbname = "bla";
$user = $_POST['data']['email'];
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
$sql = "INSERT INTO user (email)
VALUES ('" . $user . "')";
if ($conn->query($sql) === TRUE)
echo "New record created successfully";
else
echo "Error: " . $sql . "<br>" . $conn->error;
$conn->close();
?>
但每次我启动应用程序时,数据库都是空的。调试器 concole 没有给我任何错误。 db 连接正在工作,尝试使用 echo 连接结果。其他 js 工作正常。
【问题讨论】:
您尝试像 print_r($_POST) 这样打印我们的 POST 数据?或者结果如何? 把这个data: data: "email" : email , //data:email, ,
改成这个data: "email" : email ,
然后再试一次
在您的 ajax 调用中添加一个“错误”回调并输出响应。只有当响应的状态为 200 时,才会调用“成功”回调。
同时检查您的 php.ini 文件以确保您正在记录和显示错误。如果不添加“error_reporting = E_ALL & ~E_NOTICE”和“display_errors = 1”
【参考方案1】:
action.php
<?php
$dbhost = "bla";
$dbuser = "bla";
$dbpass = "bla";
$dbname = "bla";
print_r($_POST); // see full contents of the POST
$user = $_POST['data']['email'];
print PHP_EOL . $user . PHP_EOL; // see full contents of the $user var
$conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if ($conn->connect_error)
die("Connection failed: " . $conn->connect_error);
$sql = "INSERT INTO user (email) VALUES ('" . $user . "')";
print PHP_EOL . $sql . PHP_EOL; // see the actual sql query, you can test this later in your sql editor ex. phpmyadmin
if ($conn->query($sql) === TRUE)
echo "New record created successfully";
else
echo "Error: " . $sql . "<br>" . $conn->error;
$conn->close();
?>
进行这些编辑,运行 ajax 并检查调试器中的响应选项卡。
【讨论】:
如果我在浏览器中将 action.php 作为单个文档运行 - 它会返回“Array () INSERT INTO user (user) VALUES ('') New record created successfully”。当我运行我的应用程序时,数据库中没有发生任何事情。没有空条目,也没有数据。以上是关于通过 ajax 将变量发布到 mysql db - phonegap的主要内容,如果未能解决你的问题,请参考以下文章
Ajax - 通过 ajax 将输入文件和附加变量发送到 php 文件
无法使用 PHP 和 JQuery Ajax 将新记录插入 mysql db
通过 ajax 将 Javascript 变量传递给 PHP