我正在将我的网站从mysql_ *方法迁移到mysqli。
当我使用mysql这样的数据时:
$variable = <<<eot
"asdasd" hello 'name name'
//
\\
"end"
eot;
在数据库中插入如下:
"asdasd" hello 'name name'
//
\
"end"
非常好。
现在它插入相同的数据,如下所示:
\"asdasd\" hello \'name name\'\r\n // \r\n \\\r\n \"end\"
任何人都可以告诉我如何保持旧的方式插入数据库。我不需要\和\ r和\ n等等。感谢
答案 0 :(得分:0)
我看不出有任何区别。
表格定义:
create table test (s text)
PHP测试源:
<?php
$variable = <<<eot
"asdasd" hello 'name name'
//
\\
"end"
eot;
// mysql version
$conn = mysql_connect('localhost', 'USERNAME', 'PASSWORD');
mysql_select_db('test', $conn);
$sql = "insert into test values ('" . mysql_escape_string($variable) . "')";
$result = mysql_query($sql, $conn);
// mysqli version
$conn = mysqli_connect('localhost', 'USERNAME', 'PASSWORD', 'test');
$sql = "insert into test values ('" . mysql_escape_string($variable) . "')";
$result = mysqli_query($conn, $sql);
// mysqli version (prepared statement)
$conn = new mysqli('localhost', 'USERNAME', 'PASSWORD', 'test');
$sql = 'insert into test values (?)';
$sth = $conn->prepare($sql);
$sth->bind_param('s', $variable);
$result = $sth->execute();
每个版本在表格中生成相同的条目。所以,这只是一个不同的输出,或者你的代码做了不同的事情。