0

PHPのSQLクエリでエラーが発生します。複数のクエリを試しましたが、phpMyAdminが生成するPHPコードを使用するのにも疲れました。誰かがこれを手伝ってくれますか?

無効なクエリ:SQL構文にエラーがあります。1行目の「sample_table」LIMIT0、30'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

PHPコードは次のとおりです。

//Connect to server
 $connect = mysql_connect("localhost", "root", "");
if (!$connect) {
    die('Not connected : ' . mysql_error());
}

//Connect to DB
$db_selected = mysql_select_db("testing", $connect);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

$sql = "SELECT `Name` FROM `sample_table` LIMIT 0, 30 ";

//Query DB table
$sqlQuery = mysql_query($sql, $connect);
if (!$sqlQuery) {
    die('Invalid query: ' . mysql_error());
}

//fetch the results / convert the results into an array
while($rows = mysql_fetch_array($sqlQuery, MYSQL_NUM)) //this is happening
{   
    $name = $rows['name'];
    $age = $rows['age'];
    $ID = $rows['ID'];

    echo "$name<br/>$age<br/>$ID<br/>";
}

mysql_close($connect);

これが私が作成したphpMyAdminテーブルのスクリーンショットです。このテーブルには多数のレコードがあります。

phpMyAdminスクリーンショット

4

5 に答える 5

1

アポストロフィの代わりに:

 SELECT Name FROM 'sample_table' LIMIT 0, 30

バッククォートを使用:

 SELECT Name FROM `sample_table` LIMIT 0, 30
于 2012-06-25T17:44:46.907 に答える
1

バッククォートは、データベース、テーブル、または列の名前を示します。一重引用符は、MySQL にフィールド値を示します。そのため、'sample_table' をテーブル名ではなくフィールド値として解釈しようとしています。'Name' と同じように、'Name' に変更します。

修正されたスクリプト;

$connect = mysql_connect("localhost", "root", "");
if (!$connect) {
    die('Not connected : ' . mysql_error());
}

//Connect to DB
$db_selected = mysql_select_db("testing", $connect);
if (!$db_selected) {
    die ('Can\'t use foo : ' . mysql_error());
}

$sql = "SELECT `Name` FROM `sample_table` LIMIT 0, 30 ";

//Query DB table
$sqlQuery = mysql_query($sql, $connect);
if (!$sqlQuery) {
    die('Invalid query: ' . mysql_error());
}

//fetch the results / convert the results into an array
while($rows = mysql_fetch_array($sqlquery, MYSQL_NUM)) //this is happening
{   
    $name = $rows['name'];
    $age = $rows['age'];
    $ID = $rows['ID'];

    echo ($name."<br />".$age."<br />".$ID."<br />"); 
/*proper echo and html syntax, remember echo is still a function that you are passing a parameter to!*/
}
于 2012-06-25T17:51:27.663 に答える
1

これを試して

SELECT Name FROM sample_table LIMIT 0, 30 

それ以外の

SELECT Name FROM 'sample_table' LIMIT 0, 30
于 2012-06-25T17:40:47.777 に答える
1

これを変える:

$sql = "SELECT Name FROM 'sample_table' LIMIT 0, 30 ";

これに:

$sql = "SELECT `Name` FROM `sample_table` LIMIT 0, 30 ";

'を に変更したことに注意してください`

ちなみに、echo構文は次のようになります。

 echo $name."<br/>".$age."<br/>".$ID."<br/>";
于 2012-06-25T17:43:20.960 に答える
0

SQLステートメントの引用符を削除してみてください:

$sql = "SELECT Name FROM sample_table LIMIT 0, 30";
于 2012-06-25T17:41:28.440 に答える