PHP& SQL插入数据库表错误

时间:2013-03-04 15:14:48

标签: php html sql

我正在慢慢地学习PHP和SQL,并且在尝试将字符串发送到SQL数据库时偶然发现了一个小错误。我要做的是将用户的详细信息插入到一个表(当前有效)中,并将用户名和5个空白条目一起发送到另一个表中。表格考试领域是用户名,考试,考试1,考试2,考试3,考试4(这些考试领域我现在需要空白)。

问题是我收到以下消息: 解析错误:语法错误,第11行的C:\ xampp \ htdocs \ E-LearningWebsite \ addcustomertodb.php中的意外T_CONSTANT_ENCAPSED_STRING(启动$ query1的那一行)

如果有可能,任何人都可以解释这个错误意味着什么以及我做错了什么?

<?php
require "dbconn.php";

$username = $_GET['username'];
$email = $_GET['email'];
$pass = $_GET['password'];

$query = "INSERT INTO customer VALUES ('".$username."','".$email."','".$pass."')";

$query1 = "INSERT INTO examscores VALUES ('".$username."','""','""','""','""','""')";

$results = mysql_query($query) or die (mysql_error());

$results1 = mysql_query($query1) or die (mysql_error());

?>

亲切的问候安迪

4 个答案:

答案 0 :(得分:4)

变化

$query1 = "INSERT INTO examscores VALUES ('".$username."','""','""','""','""','""')";

$query1 = "INSERT INTO examscores VALUES ('".$username."','','','','','')";

PS。你正在邀请SQL注入,但这是一个不同的故事......

答案 1 :(得分:2)

护目镜!他们什么都不做! sql injection vulnerabilities!这只是星期一!

为什么不

$query ="INSERT INTO customer VALUES ('$username', '$email', '$pass');";
$query1 = "INSERT INTO examscores VALUES ('$username', '', '', '', etc...);";

PHP很乐意为您替换""引用字符串中的$ vars。绝对不需要你正在进行的所有连接。任何体面的代码编辑器仍然会为你突出显示变量。

答案 2 :(得分:2)

你缺少连接字符串的点

$query1 = "INSERT INTO examscores VALUES ('".$username."','"."','"."','"."','"."','"."')";
此外,你不需要有不同的字符串 如果你不插入它们,你还需要包括每一列

答案 3 :(得分:1)

导致错误的直接问题是来自查询1的双引号之间缺少.,(或者你应该完全删除双引号。或者甚至是不需要的列...)。

但代码中存在方式更大的问题

  • SQL injection :您的代码容易受到攻击。你应该至少逃避来自用户的变量......
  • mysql_* deprecation :自PHP 5.5起,这些功能将被弃用。使用Mysqli甚至是ebtter PDO。