Mysql无法进行查询

时间:2015-04-25 22:33:29

标签: php mysql mysqli

我正在尝试使用PHP将一些数据放入我的MySQL表中。我已经从数据库中检索了一些变量数据。让我们说它是:

$data = "Some variable";

但问题在于代替 Some variable我有这样的数据

$data = $row['some data'];

我不知道我提取的可能是一段时间它可能是超链接可能有一段时间它可能只是一些垃圾数据。当我尝试将数据放入MySQL表时出现问题。

我试图回应查询,假设这是查询

$query = "INSERT into table VALUES(0, '$data')";

输出结果为:

INSERT INTO table VALUES(0,'Donatted book:'25 ways to improve life');

捐赠的书后有一个上面的引文。但我不能改变它,因为这里的数据来自另一个数据库。如何使此插入命令起作用。

以下是我的代码的工作原理

<?php
    $query = "SELECT*from table WHERE id=$content_id";
    $data = mysqli_query($dbc, $query);
    $row = mysqli_fetch_array($data);
    $data = $row['col'];

    $query2 = "INSERT INTO table VALUES(0, $data)";
    mysqli_query($query2);
?>

2 个答案:

答案 0 :(得分:2)

您应该使用PDO prepared statements

table

答案 1 :(得分:1)

由于您使用comments中提到的mysqli_* API。

您正在寻找:mysqli_real_escape_string()

但更容易使用mysqli_* prepared statements

旁注:

tableMYSQL reserved word,所以你必须在它周围添加反引号,例如。

$query2 = "INSERT INTO `table` VALUES(0, $data)";
                     //^     ^

此外,您在第二个查询中缺少$dbc作为第一个参数,因此请按以下方式添加:

$row = mysqli_query($dbc, $query2);

我还建议您检查or die(mysqli_error($db));的错误,例如

$row = mysqli_query($dbc, $query2) or die(mysqli_error($dbc));