为了账号安全,请及时绑定邮箱和手机立即绑定

在字段中使用单引号项的 mySQL 语句中使用双引号和单引号时遇到问题

在字段中使用单引号项的 mySQL 语句中使用双引号和单引号时遇到问题

PHP
潇潇雨雨 2022-01-02 17:22:55
$_SESSION['ddv'](或 $all_ddv)是一串像这样的名字:'name 1'、'name 2'等(注意单引号)。我需要完全像这样存储这个字段(使用 ' 和 ,),因为我稍后会用一个看起来像这样的查询来回忆它:SELECT * FROM ".$tbl"。哪里voix(字段 ddv)问题是每个名称(在单引号之间并用逗号分隔)都被视为一个新的字段条目,我收到 SQL 错误 1136 - 错误的字段计数。我尝试了“,',, to no avail...Table structure : num, pseudo, title, ddv, visible (trouble is withddv 字段`)的所有可能组合<?php//Save the selection to table book_persoif(isset($_GET["session_save_ddv"])) {    $all_ddv = $_SESSION['ddv'];    echo 'ECHO $all_ddv for debugging : '.$all_ddv.'<br>';    $sql = "INSERT INTO livres_perso VALUES ('num','$_GET[pseudo]', '$_GET[title]', '$all_ddv','0')";    if (mysql_query($sql)) {        echo "New record created successfully !";    } else {        echo "** Error: " . $sql . "<br>" . mysql_errno();    }}?>在表中我想要: 2 ¦ my pseudo ¦ my title ¦ 'john', 'anne', 'ed' ¦ 1 ¦
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

您应该转换为 PDO 或 MySQLI 并使用准备好的语句而不是将变量替换为 SQL 字符串。但是在你能做到这一点之前,你需要使用mysql_real_escape_string()转义字符串,以防止 SQL 注入和转义引号。


$pseudo = mysql_real_escape_string($_GET['pseudo']);

$title = mysql_real_escape_string($_GET['title']);

$all_ddv = mysql_real_escape_string($_SESSION['ddv']);

$sql = "INSERT INTO livres_perso VALUES ('num', '$pdeudo', '$title', '$all_ddv','0')";


查看完整回答
反对 回复 2022-01-02
  • 1 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信