2012-04-07 94 views
0

嗨,那里做了一个有数据库的小项目(对他们没有太多的经验)。我正在使用mySQL和php,对php有点麻烦,并将HTML表单中的信息发布到数据库。用php向数据库添加信息

下面是代码:

<?php 
$host=""; // Host name 
$username=""; // Mysql username 
$password=""; // Mysql password 
$db_name=""; // Database name 
$tbl_name="tags"; // Table name 

// Connect to server and select database. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

// get data that sent from form 
$s_name=$_GET['name']; 
$s_system=$_GET['system']; 
$s_cate=$_GET['cate']; 

$sql="INSERT INTO $tbl_name(name,system,cate)VALUES('$s_name', '$s_system', '$s_cate')"; 
$result=mysql_query($sql); 

if($result){ 
echo "Successful<BR>"; 
echo "<a href=mainforum.php>View your topic</a>"; 
} 
else { 
echo "ERROR"; 
} 
mysql_close(); 
?> 

如果有人可以帮助解释给我什么,我做错了,多少会非常可以理解的。

THANKS

这里是为了什么,我试图做一个链接:

http://socialsoftware.purchase.edu/roger-p.king/database2/enter_gamertag.html

+1

尝试打印的'$ s_name'和'$ sql'值,看看它们包含的内容。 – 2012-04-07 15:09:31

+0

我想说的第一种检查是否写入的方法是,像AJ所说的那样,echo $ sql,然后将它打印的内容复制到MySQL查询屏幕中,看看是否出现错误。这样你就可以知道错误是在你的INSERT查询中,还是在其他地方。 这通常是我如何调试我的查询......你也可以在if($ result)中结合两个回声来回显“成功
,但你可能已经知道了这个 – 2012-04-07 15:17:16

回答

0

ü应该使用$ _ POST [ '变量'],而不是$ _GET

因为$ _GET是链接上的变量数组

如“http://example.com/?var=123”,$ _GET ['var']的值是123

形式的变量可以通过$ _POST [ '变种']或$ _REQUEST [ '变种']获得

+0

使用GET没有任何问题,除非他使用它来发送敏感信息,否则可以使用得到。 – Kishor 2012-04-07 15:47:10

+0

你可以告诉我的错误消息:D – 2012-04-07 15:49:25

+0

它不一定是一个错误消息,它只是当你提交论坛,它需要if else语句检查,并没有发布什么输入在表格 – user1308214 2012-04-07 22:38:04

0

$query = mysql_query("INSERT INTO '$tbl_name'(name,system,cate)VALUES('$s_name', '$s_system', '$s_cate')";

这应该做,或者如果你这样做在2号线的方式,

$sql="INSERT INTO '$tbl_name'(name,system,cate)VALUES('$s_name', '$s_system', '$s_cate')";

$result=mysql_query($sql);

+0

我刚试过这个,它仍然不起作用。仍然给其他语句错误。 – user1308214 2012-04-07 21:07:41

+0

难道这是我创建phpmyadmin上的字段? – user1308214 2012-04-07 21:08:38

+0

你可以复制你运行的错误吗? – Kishor 2012-04-08 00:10:14