2014-11-06 25 views
2

好吧,我試圖從我的數據庫中選擇一個鏈接,從頁面中獲取文本,解析它並將其放在同一行的不同列中並重復。我不斷收到一個錯誤,說「file_get_contents():文件名不能爲空」所以我想它的變量代表鏈接必須是空的。做了一個mysql_fetch_row($result);,果然,我的$link_result是NULL。我不明白爲什麼。幫幫我?繼承人代碼到目前爲止:爲什麼我的變量爲NULL?試圖把MySQL查詢結果放入變量

$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++; 
    } 

我顯然很新,所以任何幫助是非常讚賞。

+0

我一定會加引號謝謝。任何想法爲什麼$ link_result是NULL? @ Arif_suhail_123 – tommyg 2014-11-06 07:56:08

+1

你不能直接使用mysql_query得到結果,你必須使用mysqli_fetch_row或mysqli_fetch_assoc或mysqli_fetch_object來獲得結果。 – Husni 2014-11-06 07:59:52

+0

謝謝@Husni – tommyg 2014-11-06 08:16:39

回答

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']; 
} 
+0

查詢返回一個鏈接,file_get_contents應該下載該鏈接的html。這仍然適用? @Ghost – tommyg 2014-11-06 08:03:00

+0

@tommyg'mysqli_query'從資源對象中返回一個資源對象,您需要獲取結果,並通過它使用獲取函數,一旦您獲取了這些行,然後獲取這些鏈接 – Ghost 2014-11-06 08:04:30

+0

@tommyg並且介意那些其他答案也是arif和rahul的。編譯我們的答案,它應該構成一個工作的, – Ghost 2014-11-06 08:05:27

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。但你可以做一些這樣的事情,我認爲你需要updatequery而不是插入。

喜歡這個

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

你甚至不能遵循你自己的建議。 – 2014-11-06 07:59:49

1

我不知道PHP,但在你的SELECT聲明中使用的是必須使用backtique像

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

再次躲過了保留字key,你INSERT聲明格式是錯誤的,如下所示。您在INSERT聲明中不使用WHERE子句。

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

我覺得你的意思做一個UPDATE而不是像

UPDATE usedcars SET adtext = $final_text WHERE `key` = $x 
相關問題