0

我正在将我的网站从 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 以及我猜的这些东西。谢谢

4

1 回答 1

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();

每个版本都会在表中生成相同的条目。所以,要么这只是你拥有的不同输出,要么你的代码做了不同的事情。

于 2012-11-18T16:27:45.563 回答