2014-11-06 65 views
0

我在这里有一个问题..
我目前正在建立一个网站(博客),我希望人们能够注册。
我希望这些信息将被发送到我的MySQLPHP注册到MYSQL数据库

这是一些代码:

<?php 
$query="INSERT INTO Medlemmar(namn, epost) 
VALUES("$_GET[namn]", "$_GET[epost]")"; 
if (!mysqli_query($mysql_pekare,$query)) 
    { 
    die("Error: " . mysqli_error($mysql_pekare)); 
    } 
echo "Du har lagt till kunden I databasen"; 
?> 

但出于某种原因,我得到的“价值”部分的错误。那我在想念一个语法..跆拳道我失踪?!一直坚持这个1小时以上..只是不得不转过来,通常是一个快速的回应!谢谢!

编辑:“解析错误:语法错误,意外T_VARIABLE

+0

只需查看语法高亮显示,您就会自己看到问题。 – Sirko 2014-11-06 16:19:03

+0

它只在VALUES行上说某处..但我无法找到它。我开始相信没有什么不妥,而且有些东西正在被窃听。哈哈 – 2014-11-06 16:21:04

+0

这里的关键词是“字符串连接”。 – Sirko 2014-11-06 16:22:26

回答

0

有语法错误所有的地方......这需要一些工作。

<?php 
    $query = "INSERT INTO Medlemmar(name, epost) VALUES(\"".$_GET['namn']."\", \"".$_GET['epost']."\")"; 

这应该修复查询......你需要学习如何逃生\"双引号,使他们能够在实际的查询中使用。

+0

谢谢,这有助于.. 现在我正在努力与另一个问题,但我很感激它! TY! – 2014-11-06 16:32:40

+0

没问题。当谈到Php和MySQL时,有很多小事可能会让你感到不快,但不断尝试,最终会成为你的第二天性。祝你好运! – 2014-11-06 17:20:17

0

尝试

VALUES ('".$_GET[a]."', '".$_GET[b]."') 

或“和”交换。

+0

没有解决它,对不起。 – 2014-11-06 16:26:22

+0

您需要展开这个:... VALUES(''); to ... VALUES('“。$ _ GET [a]。”');或者你需要准备$ get = $ _GET [a];等等。 – cli 2014-11-06 16:27:36

+0

你也可以尝试使用'而不是' – cli 2014-11-06 16:32:21

0

你忘了周围的每个值

0

你管理注册的方法是极不安全的单引号。如果你是要将namnepost的值设置为sql查询(如SELECT FIRST (username) FROM user_table),那么它会执行代表原始sql查询的内容。

if you set username to SELECT FIRST (username) FROM user_table then it would return the first username in the user_table

为避免发生这种情况,您可以使用预准备语句,这意味着您专门为占位符值分配一个sql查询,然后将值应用于占位符。 这意味着你强制sql查询只执行你已经告诉它做的事情。

E.g.你只想把INSERT放到一个表中,只做那个,没有别的,没有SELECT,也没有表DROP那么你可以用这样的占位符值创建准备好的INSERT查询。

$db = new PDO('mysql:host=localhost;dbname=database_name', 'database_user', 'database_user_password'); 
// Create the register statement for inserting. 
// Question mark represent a placeholder for a value 
$register = $db->prepare('INSERT INTO users_table (username, password) values (?, ?)'); 

// Execute the register statement and give it values 
// The values need to be parsed over in a array 
$register->execute(array("test_user", "test_password")); 

我不是最好的解释时,但如果你想了解究竟是怎么回事,然后this是一个相当不错的文章这也解释了它的更多细节。