0

この php スクリプトが実行されるたびにクエリが失敗する理由を知りたいです。エラーは次のとおりです: 致命的なエラー: クエリに失敗しました! SQL: - エラー: /home/eland/u5/kbecs/w1268094/public_html/UWSU-Debating-Portal/admin/inventory.php の 19 行目

これは19行目あたりのコードです。

$question = mysqli_real_escape_string($link,$_POST['question']);
$venue = mysqli_real_escape_string($link,$_POST['venue']);
$date = mysqli_real_escape_string($link,$_POST['questiondate']);
//See if question is identical to another question in the table
$sql = mysqli_query($link,"SELECT qQuestionNo FROM DebateQuestion WHERE question='$question'LIMIT 1");
$questionMatch = mysqli_num_rows($link, $sql) or trigger_error("Query Failed! SQL: $sql - Error: ".mysqli_error(db_conx), E_USER_ERROR);; //count the output amount
if ($questionMatch>0){
echo 'Sorry you tried to place a duplicate "Question" into the table, <a href="inventory.php">Click here</a>';
exit();
}
//Add the question to the database 
$sql = mysqli_query($link,"INSERT INTO DebateQuestion (qQuestion, qDebateVenue, qDate)
VALUES($link,'$question','$venue','$date'") or die (mysqli_error());
$qid = mysqli_insert_id();
header("Location: inventory.php");
exit();
}
4

4 に答える 4

0

ひどく一貫性がなく、コードが乱雑であるため、クエリが失敗しています。また、エラー報告がないため、それについてはわかりません。

error_reporting(E_ALL);
ini_set('display_errors',1);

コードの先頭にある は、最も愚かな間違いを明らかにするのに役立ちます。

どこにも定義されていない奇妙なdb_conx定数
$sql、SQLコード以外のものを含む変数のように。

$sql = "SELECT qQuestionNo FROM DebateQuestion WHERE question='$question' LIMIT 1";
$res = mysqli_query($link, $sql) or trigger_error(mysqli_error($link)." [$sql]");
if (mysqli_num_rows($link)){
    echo 'Sorry you tried to place a duplicate blah blah';
    exit();
}

少なくともそうでなければならない

于 2013-09-02T15:20:39.253 に答える
0

LIMITの前にスペースを入れてみてください

$sql = mysqli_query($link,"SELECT qQuestionNo FROM DebateQuestion WHERE question='$question'LIMIT 1");
于 2013-09-02T15:12:56.413 に答える
-1

LIMITキーワードの前にスペースを追加してみてください:

$sql = mysqli_query($link,"SELECT qQuestionNo FROM DebateQuestion WHERE question='".$question."' LIMIT 1");
于 2013-09-02T15:14:32.307 に答える