私は、ドキュメントのリンクがクリックされると、DB内のドキュメントの "表示された"ステータスを更新するPHPスクリプトが呼び出されるというWebappがあります。これは、クリックが発生したときに呼び出されるスクリプトです:"サブクエリは副問合せなしで1行以上を返します"
<?php
include '../../variables.php';
// The document that is passed through POST
$document = $_POST['document'];
$conn = new mysqli($dbhost, $dbuser, $dbpassword, $db);
if (!$conn){
die('Could not connect to db: '.mysqli_error($conn));
}
$sql = "UPDATE files
SET docViewed = '1'
WHERE fileloc = '$document'";
$query = mysqli_query($conn, $sql);
if (!$query){
die('Could not update docViewed: '.mysqli_error($conn));
}
?>
あなたが見ることができるように、私は私がしたいフィールドを更新MySQLのクエリで何のサブクエリを持っていない、まだ私はまだ、このエラーが発生します:
Could not update docViewed: Subquery returns more than 1 row
私は、クエリに追加しようとしている:
"...
WHERE fileloc = '$document'
LIMIT 1";
はしかし、私はまだ同じ結果を得ます。
明らかにすると、各$document
はデータベース内でUNIQUEでなければならないため、重複するエントリはありません。
UPDATE:この投稿は、OPがサブクエリを使用しているため、提案された投稿と重複していません。この例では、どこでもサブクエリを使用していません。
私が使用しているfiles
テーブルの構造は次のとおりです。私はこのエラーを生成するために起こっている実際のMySQLのクエリを絞り込んてい:
UPDATE 2:また$document
の重複がないを示すために、私は30294/1506012960606.pdf
あるfileloc
てテーブルをフィルタ処理しました:
UPDATE files
SET docViewed = '1'
WHERE fileloc = '30294/1492682311085.pdf'
ファイルがテーブルであり、ビューではありませんか? –
ファイルは確かにそれ自身のテーブルです – Jodo1992
その投稿でOPが実際にサブクエリを使用しているので、重複していません。私は – Jodo1992