Php 可能是Mysql语法错误?
大家好,我不知道我的错误很清楚,如果我打开我的网站,我在左边的床Sql语法这里是我的代码Php 可能是Mysql语法错误?,php,mysql,syntax,Php,Mysql,Syntax,大家好,我不知道我的错误很清楚,如果我打开我的网站,我在左边的床Sql语法这里是我的代码 <?php $dbuser="root"; $dbpass=""; $dbname="l2jgs"; //the name of the database $chandle = mysqli_connect("localhost", $dbuser, $dbpass) or die("Connection Failure to Database"); mysqli_select_db
<?php
$dbuser="root";
$dbpass="";
$dbname="l2jgs"; //the name of the database
$chandle = mysqli_connect("localhost", $dbuser, $dbpass)
or die("Connection Failure to Database");
mysqli_select_db($chandle, "l2jgs");
$sql="insert characters.char_name,characters.pvpkills,char_templates.ClassName,characters.online from characters,char_templates where characters.classid=char_templates.Classid order by characters.pvpkills DESC LIMIT "."NumberOfResults";
echo"<html><head></head><body bgcolor='#000000' style='color:rgb(200,200,200)'>";
echo "<table border='2' align=center width=500>";
echo "<tr><th>Nr.</th><th>Name</th><th>Pvp Kills</th><th>Main class</th><th>Status</th></tr>\n";
$nr=1;
if ($result=mysqli_query($chandle,$sql)or die("Bed Sql syntax")) {
while ($row=mysql_fetch_row($result)) {
echo "<tr><td align=center>".$nr."</td>";
$nr++;
echo "<td align=center>".$row[0]."</td>";
echo "<td align=center>".$row[1]."</td>";
echo "<td align=center>".$row[2]."</td>";
if($row[3])
{echo "<td align=center style='color:rgb(0,255,0)'>Online</td></tr>\n"; }
else{echo "<td align=center style='color:rgb(255,0,0)'>Offline</td></tr>\n";}
}
} else {
echo "<!-- SQL Error ".mysql_error()." -->";
}
echo "</table></body></html>";
?>
我对您的SQL语句很感兴趣:
INSERT characters.char_name,
characters.pvpkills,
char_templates.classname,
characters.online
FROM characters,
char_templates
WHERE characters.classid=char_templates.classid
ORDER BY characters.pvpkills DESC limit numberofresults
通常情况下,这是将字段插入到表中,其中包含条件,并且您不应该在查询数据时担心插入的顺序。也许:
INSERT characters.char_name,
characters.pvpkills,
char_templates.classname,
characters.online
INTO characters,
char_templates
WHERE characters.classid=char_templates.classid
或:
以下是您的sql(有问题):
1) 您想选择
而不是插入
2) NumberOfResults必须是数字,而不是字符串。我没有看到名为“NumberOfResults”的变量,所以您可能只想将其设置为特定值,可能是100?
3) 最好为表使用别名,而不是完整的表名。
4) 使用php多行字符串,以这种方式读取sql查询要容易得多
固定版本,准备复制粘贴:
$sql = <<< SQL
SELECT
char.char_name,
char.pvpkills,
ct.ClassName,
char.online
FROM
characters char,
char_templates ct
WHERE
char.classid = ct.Classid
ORDER BY
char.pvpkills DESC
LIMIT 100;
SQL;
$sql=您的查询语法不正确
看到查询下方的回声,您希望使用SELECT
而不是INSERT
$sql="SELECT characters.char_name,characters.pvpkills,
char_templates.ClassName,characters.online
FROM characters,char_templates
WHERE characters.classid=char_templates.Classid
ORDER BY characters.pvpkills
DESC LIMIT "."NumberOfResults"; // <= unclear
旁注:错误报告只能在暂存阶段进行,而不能在生产阶段进行。检查您的查询。似乎不正确。您的查询似乎是SELECT
。因此,将$sql=“select characters.char\u name,…
$sql = <<< SQL
SELECT
char.char_name,
char.pvpkills,
ct.ClassName,
char.online
FROM
characters char,
char_templates ct
WHERE
char.classid = ct.Classid
ORDER BY
char.pvpkills DESC
LIMIT 100;
SQL;
$sql="SELECT characters.char_name,characters.pvpkills,
char_templates.ClassName,characters.online
FROM characters,char_templates
WHERE characters.classid=char_templates.Classid
ORDER BY characters.pvpkills
DESC LIMIT "."NumberOfResults"; // <= unclear
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code