大家好,有谁可以帮忙(或有相同的问题)。
我在我的网站上有一个表格,我需要将数据存储在数据库中。我没有问题,当使用任何其他数据库服务,但当使用亚马逊rds数据库,我没有运气。
这个php文件用于将数据发送到数据库。
<?php
$dbhost = "xxxx.xxxx.ap-southeast-2.rds.amazonaws.com";
$dbuser = "username";
$dbpass = "pasword";
$userid = $_GET['UniqueID'];
$username = $_GET['name'];
$useremail = $_GET['email'];
$userphone = $_GET['phone'];
$userref = $_GET['refid'];
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn )
{
die('Could not connect: ' . mysql_error());
}
$sql = "INSERT INTO landing_post (`useid`, `name`, `email`, `phone`, `refid`) VALUES ('$userid', '$username', '$useremail', '$userphone', '$userref')";
mysql_select_db('bunker');
$retval = mysql_query( $sql, $conn );
if(! $retval )
{
die('Could not enter data: ' . mysql_error());
}
echo "Entered data successfully\n";
mysql_close($conn);
?>
表单提交到原始post操作后,它将打开下面的url。
https://example.com.au/test/post.php?&UniqueID=10020&name=burger&email=test%40mvmedia.com&phone=1800+000+000&refid=28383
$\u get函数使用url中的变量填写数据。
在基于cpanel的服务器上运行php时,我遇到了这个错误。
Could not connect: Can't connect to MySQL server on 'xxxxx.xxxxxxx.ap-southeast-2.rds.amazonaws.com' (111)
当从awsec2示例运行php时,我甚至没有得到一个错误读数。
如有任何帮助或见解,我们将不胜感激。干杯,安迪
1条答案
按热度按时间g52tjvyc1#
向让我走上正路的圣保罗大喊一声。经过多次尝试和错误,我发现下面的代码解决了这个问题。
主要的变化是我不再使用mysql,而是使用mysqli。为了使代码能够与mysqli一起工作,还进行了一些结构上的更改。对于其他有类似问题的人,这里有一些事情需要检查。
您已在rds数据库的安全组中为ip打开了入站端口。
数据库可以公开访问。
您的php版本已经安装了pdo\umysql或兼容的驱动程序(更多细节请参见此处)https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_php.rds.html)