数据没有出现在MySQL中

时间:2011-10-23 01:38:40

标签: php mysql

所以我制作了一个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> 

3 个答案:

答案 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是否包含我认为他们做的事情。也许您的数据未正确发布。