这段代码一直说“已经添加了记录”,但是却没有在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";
}
?>
答案 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);