我正在慢慢地学习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());
?>
亲切的问候安迪
答案 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的双引号之间缺少.
,(或者你应该完全删除双引号。或者甚至是不需要的列...)。
但代码中存在方式更大的问题: