在mysql数据库中插入TEXT显示错误

时间:2015-07-04 20:06:04

标签: mysql

我遇到了一个奇怪的问题。我的表格中有一个文本列。我将从html格式的textarea中取出的文本插入到mysql数据库中。

$sql="INSERT INTO mytable ( `username`, `firstname`, `lastname`,`about`,`email`) VALUES ('$username', '$fname', '$lname','$about','$email');";      

这里是TEXT类型列
这是我的textarea

<textarea id="oabout" name="about" rows="10" placeholder="Aboutyourself"></textarea>

如果我插入以下文字,那么插入工作正常

I am a student

但如果我尝试插入以下文字我会收到错误

I'm a student

错误显示为

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在学生附近使用正确的语法,&#39; abc@gmail.com')&#39;在第1行

如何进行更改以便第二个文本也插入数据库?

1 个答案:

答案 0 :(得分:1)

问题似乎是您的单引号未被转义。如果您使用的是PHP,那么这个模块将在输入字符串中转义需要转义的所有内容:http://us3.php.net/manual/en/pdo.quote.php

您的usecase未经测试的示例,$ conn必须是您的mysql连接字符串:

<?php
$conn = new PDO('sqlite:/home/lynn/music.sql3');
$about = 'I'm a student';
$quotedAbout = $conn->quote($about);
print $quotedAbout;
?>

基本上,您只需为要自动转义的每个TEXT字段调用$conn->quote($someVariable)

致以最诚挚的问候,