PHP注册到MYSQL数据库

时间:2014-11-06 16:16:20

标签: mysql css database registration

我这里有问题。
我目前正在建立一个网站(博客),我希望人们能够注册。
我希望将这些信息发送到我的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";
?>

但由于某种原因,我在“VALUES”部分得到错误..我错过了一个语法..我错过了WTF?!已经坚持了1个多小时..只需要转到这里,通常是快速反应!谢谢!

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

4 个答案:

答案 0 :(得分:0)

整个地方都存在语法错误......这需要一些工作。

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

这应修复查询...您需要学习如何转义\"双引号,以便它们可以在实际查询中使用。

答案 1 :(得分:0)

尝试

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

或'和'交换。

答案 2 :(得分:0)

您忘记了每个值周围的单引号

答案 3 :(得分:0)

您管理注册的方式非常不安全。如果要将namnepost值设置为sql查询(如SELECT FIRST (username) FROM user_table),那么它将代表原始sql查询执行该操作。

  

如果您将用户名设置为SELECT FIRST(用户名)FROM user_table,那么它将返回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是一篇非常好的文章,可以更详细地解释它。