想要添加到数据库,但不显示/工作

时间:2014-01-24 08:02:25

标签: database

这段代码一直说“已经添加了记录”,但是却没有在phpmyadmin上看到...有什么想法吗?

phpmyadmin:localhost> summarytive> Data

$con = mysql_connect("localhost", "root", "") or die(mysql_error()); 
if(!$con)(die("could not connect " . mysql_error()));
mysql_select_db("summative") or die(mysql_error()); 
mysql_query("INSERT INTO Data(First Assister) VALUES('$_GET[assist1]')"); 
if("INSERT INTO Data(First Assister) VALUES('$_GET[assist1]'");
{
echo "Record Added";
}
?>

1 个答案:

答案 0 :(得分:0)

1。)现在不推荐使用mysqli来自http://us2.php.net/manual/en/intro.mysql.php

  

自PHP 5.5.0起,此扩展程序已弃用,不建议使用   用于编写新代码,因为它将来会被删除。代替,   要么使用mysqli,要么使用PDO_MySQL扩展名。另见   MySQL API概述在选择MySQL API时提供进一步的帮助。

2。)您是否认真将$ _GET数据设置到数据库中?

3。)你是否认真地将$ _GET数据设置到数据库中而不转义它? 总是 在将数据放入您的数据库时逃避用户提供的数据,除非您喜欢被中国政府资助的黑客(或俄罗斯,荷兰或巴西)黑客攻击...或者较小的共同国家,但就我一直在尝试的那些而言,这些是最常见的)

请参阅mysqli_real_escape_string的文档:http://us2.php.net/manual/en/mysqli.real-escape-string.php

2。)你从哪里获得INSERT格式?在MySQL中,格式为:

  

INSERT INTO table_name VALUES(value1,value2,value3,...)

来自:http://www.w3schools.com/php/php_mysql_insert.asp

就个人而言,我更喜欢其他INSERT格式:

  

INSERT [LOW_PRIORITY |   延迟| HIGH_PRIORITY] [IGNORE]       [INTO] tbl_name       [PARTITION(partition_name,...)]       SET col_name = {expr | DEFAULT},...       [ON DUPLICATE KEY UPDATE         COL_NAME = EXPR           [,col_name = expr] ...]

4.。)你的桌名是什么?我看到一个数据库名称,我想到一个列名,然后是一个值......

所以我将你的INSERT语句更改为:

$value = mysqli_real_escape_string($_GET['param']);
$sql = 'INSERT INTO `table_name` SET `column`="'.$value.'";';
$result = mysqli_query($sql);