我遇到了一个奇怪的问题。我的桌子上有一列文字。我将从html表单的文本区域插入到mysql数据库中。
$sql="INSERT INTO mytable ( `username`, `firstname`, `lastname`,`about`,`email`) VALUES ('$username', '$fname', '$lname','$about','$email');"; 关于这里是文本类型列
这是我的文字区
<textarea id="oabout" name="about" rows="10" placeholder="Aboutyourself"></textarea>如果我插入以下文本,则插入工作正常
I am a student但是,如果我尝试插入以下文本,则会出现错误
I'm a student错误显示为
您的SQL语法出现了错误;请检查与您的MySQL服务器版本相对应的手册,以便在第1行使用接近“m 'm‘的学生”(’abc@gmail.com‘)的正确语法。
如何进行更改,以便将第二个文本也插入数据库?
发布于 2015-07-04 20:14:31
问题似乎是你的单引号没有被逃脱。如果您正在使用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;
?>基本上,您只需为您想要自动转义的每个文本字段调用$conn->quote($someVariable)。
诚挚的问候,
https://stackoverflow.com/questions/31224700
复制相似问题