好的,我试图从我的数据库中选择一个链接,从页面获取文本,解析它并将其放在同一行的不同列中并重复。我一直收到错误说“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++;
}
我显然很新,所以任何帮助都非常感激。
答案 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_array
或mysqli_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