在我的 html 中,我有一个简单的 ajax,它位于按下按钮时调用的函数内。我想要调用 php 脚本来插入发送到数据库的 javascript 变量。
var myval = 'testuser'; // generated by PHP
$.ajax({
type: 'POST',
url: 'testfile.php',
data: {'variable': myval},
});
在我的 testfile.php 中,我尝试了很多东西来插入数据库,但没有成功。我知道 ajax 正在工作,因为仅执行以下操作就可以正常工作,没有错误。
<?php
$myval = $_POST['variable'];
echo $myval;
?>
我首先尝试使用全局变量执行此操作。然后甚至尝试手动输入值,尽管我在另一个脚本中具有完全相同的代码(未由ajax调用)并且工作正常,但我仍然收到 500 错误。
$db = new PDO('mysql:host='. DB_HOST .';dbname='. test_user, DB_USER, DB_PASS);
所以我尝试用不同的方式打开它。
$con = mysqli_connect('localhost','username,'pass','newdb');
if (!$con)
{
die('Could not connect: ' . mysqli_error($con));
}
效果很好。然而,放入全局变量会导致它不起作用。
然后我尝试插入到表中。
INSERT INTO send (user_id)
VALUES ($myval);
我再次收到 500 错误。
我尝试直接访问 php 文件 (testsite.com/testfile.php) 并得到一个空白页面。查看源代码对我来说没有任何帮助。
我做错了什么,导致不断出现这些错误?
最佳答案
PHP:
<?php
//Enter your database connection details here.
$host = 'localhost'; //HOST NAME.
$db_name = 'dbname'; //Database Name
$db_username = 'root'; //Database Username
$db_password = ''; //Database Password
try
{
$myval = $_POST['variable'];
$pdo = new PDO('mysql:host='. $host .';dbname='.$db_name, $db_username, $db_password);
$query = $pdo->prepare('INSERT INTO send (user_id) VALUES (?)');
$query->bindValue(1, $myval);
$query->execute();
echo $myval;
}
catch (PDOException $e)
{
exit('Error Connecting To DataBase');
}
?>
Javascript:
var myval = 'testuser'; // generated by PHP
$.ajax({
type: 'POST',
url: 'testfile.php',
data: {variable: myval},
});
不要在变量名称两边添加引号。我提供了一个 php 脚本,它应该按照您想要的方式工作,如果您仍然需要帮助,请回复。
关于javascript - 使用ajax插入数据库,500(内部服务器错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20751702/