【发布时间】:2015-11-15 14:10:32
【问题描述】:
我目前正在尝试编写 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”
我试过逃跑,但什么也没做。
我相信很多其他角色也会发生这种情况。
编辑:我认为欧元符号很好,但似乎不是,所以我删除了那部分。
【问题讨论】: