首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL转义字符串帮助

问MySQL转义字符串帮助
EN

Stack Overflow用户
提问于 2010-05-11 19:17:43
回答 2查看 1.2K关注 0票数 0

我有一个非常大的insert语句,类似于

代码语言:javascript
复制
INSERT INTO multimedia (filename, regex, flag) VALUES (('adsfavr.jpg', '<div id="title">', 0), (...), (...));

如何为MySQL.It准备查询。手动执行查询太长了。它包含双引号,所以我不能使用php函数mysql_real_escape_string()

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-11 19:23:13

为什么要用一条语句插入所有记录?您可以使用准备好的语句: INSERT INTO multimedia (filename,regex,flag) VALUES (?,?,?);

以及一个用于逐个插入记录的for循环。

我不是PHP程序员,但代码可能如下所示(摘自http://php.net/manual/en/pdo.prepared-statements.php):

代码语言:javascript
复制
$stmt = $dbh->prepare("INSERT INTO multimedia (filename, regex, flag) VALUES (:filename, :regex, :flag)");
$stmt->bindParam(':filename', $filename);
$stmt->bindParam(':regex', $regex);
$stmt->bindParam(':flag', $flag);

for ( $i = 1; $i <= ...; $i++) {
    $filename = ...
    $regex = ...
    $flag = ...

    $stmt->execute();
}

使用预准备语句,DBMS只编译一次SQL,就像使用SQL语句一样。要确保插入了所有记录或没有插入任何记录(如果无论如何都需要这样的断言),请使用事务。

此外,这也将解决您的转义问题,因为您不需要将值放入字符串中。预准备语句的字符串仅定义SQL“模板”。

票数 2
EN

Stack Overflow用户

发布于 2010-05-11 21:42:47

如果数据存储在逗号分隔的文件中,则可以使用LOAD DATA INFILE查询

这些数据的一个样本可能会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2810160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档