gpt4 book ai didi

php - raquo符号整理mysql插入中的字符串

转载 作者:行者123 更新时间:2023-11-29 21:50:09 26 4
gpt4 key购买 nike

我目前正在尝试编写一个 MySQL 数据库导出/导入功能。它检索数据库并将其保存为服务器上的 .sql 文件。当我尝试重新上传数据库时,如果存在包含符号 » 或 « 的字符串,它会在此处停止该字符串。

雪上加霜的是,包含这些符号的某些数据位于序列化数组中,因此进行查找和替换可能最终会弄乱数组。 (任何有关此的提示也很棒)

我想知道是否有任何简单的方法可以解决这个问题。

这是我的导入代码...

<?php
ini_set('display_errors',1);
$path = $_SERVER['DOCUMENT_ROOT'].'/database-dump-test/';
$sql_filename = 'db.sql';
$sql_contents = file_get_contents($path.$sql_filename);

$sql_contents = explode('/*endofquery*/',$sql_contents);



$server = 'localhost';
$username = 'u';
$password = 'password';
$name = 'db';

$mysqli = new mysqli($server, $username, $password, $name);

foreach($sql_contents as $query){

$result = $mysqli->query($query);


if (!$result)

echo $mysqli->error . "\n <br><br>";

}
?>

发生的情况是,包含“This is » a test”的字符串将仅导入“This is”

我尝试逃避,但没有任何作用。

我确信很多其他角色也会发生这种情况。

编辑:我认为欧元符号没问题,但似乎并非如此,所以我删除了该部分。

最佳答案

您必须在导出时转义某些字符串值(!)。使用 mysqli::real_escape_string()。看这个例子:

$string = "This is » a test";
$escaped = $mysqli->real_escape_string($string);

$mysqli->query("INSERT into myTable (myColumn) VALUES ('$escaped')"));

完整的文档可以在 http://php.net/manual/de/mysqli.real-escape-string.php 找到。

关于php - raquo符号整理mysql插入中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33720629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com