我有这个简单的预排序数据库输入的东西,我之前创建了这个,我搞砸了是什么方面。为什么这个PHP,而查询不工作?
有两个不同的表格:一个表格,用于跟踪关键字的频率以及表格中与关键字配对的表格。
我在做什么是通过关键字保存某些东西,我检查是否存在关键字,如果存在,我递增该关键字的计数,然后继续将条目添加到条目数据库,如果没有,我创建该关键字在关键字表中的新条目并将计数设置为1,然后将条目添加到条目数据库中。
$query = "SELECT COUNT(*) FROM key WHERE key=?";
if($stmt = $link->prepare($query)){
$stmt->bind_param('s',$key);
$stmt->execute();
while ($row = $stmt->fetch_row()){
$count = $row[0];
}
// count comes out here
// echo $count;
if($count==0){
// insert new entry
$stmt = mysqli_prepare($link, "INSERT INTO entry VALUES (?,?,?,?,?)");
$stmt->bind_param('issss',$id,$poster,$key,$entry,$date);
$stmt->execute();
// insert new key
$stmt = mysqli_prepare($link, "INSERT INTO key VALUES (?,?,?)");
$stmt->bind_param('isi',$id,$key,$numtimes);
$stmt->execute();
} else {
// insert new entry
$stmt = mysqli_prepare($link, "INSERT INTO entry VALUES (?,?,?,?,?)");
$stmt->bind_param('issss',$id,$poster,$key,$entry,$date);
$stmt->execute();
// update key count
$stmt = mysqli_prepare($link, "UPDATE key SET numtimes=key+1 WHERE key=$key");
$stmt->bind_param('s',$key);
$stmt->execute();
}
}
首先声明$ count = 0;在while循环之前,假设如果没有数据行,那么$ count就是没有,你只在第一个时使用它 – sandeepKumar
我不明白,这大概是我以前如何使用这个方法。我从来没有宣布计数,这是查询的结果。因此,如果根据* successful * msql查询没有数据,则该行将为0. – janicehoplin
请正确缩进该代码。 (如果是关于while块的具体情况,请参考相关内容。) – mario