为什么我的变量为NULL?试图将mysql查询的结果放入变量中

时间:2014-11-06 07:51:25

标签: php mysql

好的,我试图从我的数据库中选择一个链接,从页面获取文本,解析它并将其放在同一行的不同列中并重复。我一直收到错误说“file_get_contents():Filename不能为空”所以我认为它代表链接的变量必须为空。做了mysql_fetch_row($result);并确定,我的$link_result为NULL。我不明白为什么。救命?到目前为止,这是代码:

$x = 1;

    for ($y=1;$y=1201;$y++)
    {
    $query1 = "SELECT adlink, key  FROM usedcars WHERE key = $x";

    mysqli_query($conn, $query1);

    $link_result = mysqli_query($conn, $query1);

    file_get_contents($link_result);
    $text_holder = file_get_contents($link_result);

    return_between($text_holder, "postingBody", "<!-- .posting -->", EXCL);
    $final_text = return_between($text_holder, "postingBody", "<!-- .posting -->", EXCL);

    $query2 = "INSERT INTO usedcars (adtext) VALUES ($final_text) WHERE key = $x";

    mysqli_query($conn, $query2);
    echo "<font size='18' color='#FFFF00'>Placing text from $link_result into database</font><br>"; 

    $x++;
    }

我显然很新,所以任何帮助都非常感激。

3 个答案:

答案 0 :(得分:2)

您不能使用file_get_contents来获取这些值

使用mysqli_fetch_*

$link_result = mysqli_query($conn, $query1);

$result = mysqli_fetch_assoc($link_result);

如果您期望多行,请使用while()

while($row = mysqli_fetch_assoc($link_result)) {
    $link = $row['adlink'];
}

答案 1 :(得分:2)

key是mysql保留字。在它周围使用bacticks

 $query1 = "SELECT adlink, `key`  FROM usedcars WHERE `key` = $x";

并使用mysqli_fetch_arraymysqli_fetch_assoc

获取值

此行错误

$query2 = "INSERT INTO usedcars (adtext) VALUES ($final_text) WHERE key = $x";

并且您不能在insert语句中使用where clause。但是你可以做这样的事情,我认为你需要update query而不是插入。

喜欢这个

$query2 =UPDATE usedcars SET adtext ='$final_text' WHERE `key` = $x;

答案 2 :(得分:1)

我不确定PHP,但在SELECT声明中,您使用的是保留字key,必须使用backtique转义

SELECT adlink, `key`  FROM usedcars WHERE `key` = $x

同样,您的INSERT语句格式错误,如下所示。您不在WHERE语句中使用INSERT子句。

INSERT INTO usedcars (adtext) VALUES ($final_text) WHERE key = $x
                                                    <-- Here

我认为你打算做UPDATE而不是

UPDATE usedcars SET adtext = $final_text WHERE `key` = $x