在SQL数据库中存储字符串

Blo*_*nce 0 php sql

我正在玩.php和SQL,我试图测试一些东西.我知道将变量存储在表中是一件非常容易的事情,但由于某种原因,它现在对我不起作用.

这是我的表:

+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| v1    | varchar(255) | YES  |     | NULL    |       | 
| v2    | varchar(255) | YES  |     | NULL    |       | 
| v3    | varchar(255) | YES  |     | NULL    |       | 
| v4    | varchar(255) | YES  |     | NULL    |       | 
| v5    | varchar(255) | YES  |     | NULL    |       | 
| v6    | varchar(255) | YES  |     | NULL    |       | 
| v7    | varchar(255) | YES  |     | NULL    |       | 
| v8    | varchar(255) | YES  |     | NULL    |       | 
| v9    | varchar(255) | YES  |     | NULL    |       | 
| v10   | varchar(255) | YES  |     | NULL    |       | 
+-------+--------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)

我像这样访问表:

$result = mysql_query("INSERT INTO form2 (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) VALUES ($field0, $field1, $field2, $field3, $field4, $field5, $field6, $field7, $field8, $field9)");
Run Code Online (Sandbox Code Playgroud)

我通过这样做从网址获取变量:

$field0 = $_GET['field0'];
$field1 = $_GET['field1'];
$field2 = $_GET['field2']; 
$field3 = $_GET['field3'];
$field4 = $_GET['field4'];
$field5 = $_GET['field5'];
$field6 = $_GET['field6'];
$field7 = $_GET['field7']; 
$field8 = $_GET['field8'];
$field9 = $_GET['field9'];
Run Code Online (Sandbox Code Playgroud)

最后,我的网址是:

http://mywebsite.ca/anapplication?field0=YES&field1=GOOD&field2=GOOD&field3=GOOD&field4=YES&field5=GOOD&field6=GOOD&field7=GOOD&field8=A&field9=&
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息,指出有一个未知列'YES'(第一个参数).我用数字而不是字符串传递了相同的URL,令我惊讶的是一切都工作了.

我对.php或SQL没有多少经验,所以我正在寻找一套新的眼睛来快速浏览一下我在这里发布的内容.

Rom*_*oux 5

我相信你需要用单引号包装你的值,这样mysql将它们视为字符串而不是整数.这就是为什么只传递数字通过作品而字符串不传递的原因.

所以,

$result = mysql_query("INSERT INTO form2 (v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) VALUES ('$field0', '$field1', '$field2', '$field3', '$field4', '$field5', '$field6', '$field7', '$field8', '$field9')");
Run Code Online (Sandbox Code Playgroud)

应该清理它.

此外,如果这是来自Web表单或其他外部源,请确保使用类似mysql_real_escape_string()的方法对其进行清理.