所以我制作了一个PHP日历,它让你添加一个事件。除了问题是当我现在添加一个事件时,它在phpmyadmin上显示为一个新记录,但它没有任何信息在里面。请帮助:P
<html>
<head>
<title>
Calendar - event added
</title>
<body>
<?php
$link = mysql_connect('tealdevcom.ipagemysql.com', '*******', '********');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db(cal1);
$sql="INSERT INTO cal1_table (event, cal_date)
VALUES
('$_POST[title]','$_POST[date]')";
if (!mysql_query($sql,$link))
{
die('Error: ' . mysql_error());
}
echo "event added";
mysql_close($link)
?>
<br>
Go back to the <a href="http://www.development.tealdev.com">Calendar</a>
</body>
</html>
答案 0 :(得分:0)
添加一些“printf”(PHP echo“语句到您的代码以验证$ _POST [title]和$ _POST [date]不是空白。
回复你的$ sql语句也没什么坏处。
基本上,您需要调试
1)您的输入
2)您的SQL查询
答案 1 :(得分:0)
一般情况下:如果查询成功,但数据在您的gui中显示为空白,则可以始终以这种方式进行测试:
1)在控制台上运行查询(从table1中选择colA,colB) - 检查数据是否存在。 2)如果有数据,请将查询修改为(选择长度(colA),长度(colB))。现在您将知道数据中是否包含空白字符或二进制字符,因为长度不会为空。
病房之后你应该
3)将db插入到新方法中。
4)在代码中添加一个UNIT测试以运行该方法,并确保在向查询插入参数添加空数据或空数据时抛出异常。
答案 2 :(得分:0)
我强烈建议您使用某种方式单独传递查询参数,而不是直接将它们嵌入查询字符串中。正如其他地方所提到的那样,你可以向SQL injection attacks敞开大门。一个例子是使用PDO objects。
e.g。
$dbh = new PDO('mysql:host=tealdevcom.ipagemysql.com;dbname=$cal1', $user, $pass);
$stmt = $dbh->prepare("INSERT INTO cal1_table (event, cal_date) VALUES (:title, :date)");
$stmt->bindParam("title", $_POST['title']);
$stmt->bindParam("date", $_POST['date']);
$stmt->execute();
我找到了phpinfo();函数用于调试$ _GET / $ _ POST是否包含我认为他们做的事情。也许您的数据未正确发布。