在我的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;
?>
我首先尝试使用全局变量进行此操作。然后甚至尝试手动输入值,我仍然得到500错误,即使我在另一个脚本中有完全相同的代码(不是由ajax调用),它工作正常。
$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)并获取一个空白页面。查看源代码没有给我任何信息。
我为什么错误地继续犯这些错误?
答案 0 :(得分:1)
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脚本,如果你还需要帮助,请回复一下。