使用php代码时出现MySQL服务器错误
MySQL查询给出了错误,但在我看来,使用php代码时出现MySQL服务器错误,php,mysql,Php,Mysql,MySQL查询给出了错误,但在我看来,data\u new中的表名和列与所写的相同 这是SQL错误: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“0573”、“cate-csir”、“NKN”)附近使用的正确语法” 插入命令中的$new_data[4]之后缺少一个”: ...'$new_data[4],'$new_data[5]'... ^ | here 请注意:MySQ
data\u new
中的表名和列与所写的相同
这是SQL错误:
您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“0573”、“cate-csir”、“NKN”)附近使用的正确语法”
插入命令中的$new_data[4]之后缺少一个”
:
...'$new_data[4],'$new_data[5]'...
^
|
here
请注意:MySQL扩展很久以前就被弃用了,并且从v7开始从php中删除。请改用mysqli或pdo。您有两个明显的错误,一个是语法错误,一个是逻辑错误
首先,在VALUES子句中的“”$new_data[4]
之后缺少引号
第二,您只会在循环完成后发出您构建的最后一个查询。这只会将输入文件的最后一行插入数据库
<?php
$fm = fopen('main.txt','r');
// its also a good idea to check your connection worked before proceeding with any more code
$link = mysql_connect('localhost','root','');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('username');
$count=0;
while ($line = fgets($fm)) {
$new_data=@split(':',$line);
// a missing single quote after'$new_data[4]
$query="INSERT INTO `data_new`
(`directory`,`machineip`,`description`,
`state`,`status`,`instituteid`,
`category`,`project`)
VALUES ('$new_data[0]','$new_data[1]','$new_data[2]',
'$new_data[3]','$new_data[4]','$new_data[5]',
'$new_data[6]','$new_data[7]')";
// and the query must be executed inside the loop
$result = mysql_query($query);
if(!$result){
die(mysql_error());
}
}
//$result=@mysql_query($query);
//if(!$result){
// die(mysql_error());
//}
fclose($fm);
?>
您收到的错误是什么?每次使用时,世界上某个地方都会有一只小猫被勒死。它已被弃用(在PHP7中永远消失),特别是如果您只是在学习PHP,请花费精力学习PDO
数据库扩展。如果您没有抑制所有错误(@
)然后,您可能会被告知错误是什么您只运行了一次代码,在循环整个文件之后,该代码实际上向数据库发出了一个查询mysql\u query($query);
。DUH@RiggsFollyOP确实检查sql错误。仔细看,这里更像是运行$result=@mysql\u查询($query)
仅在loop@RiggsFolly我没有调试整个代码。我回答了这个问题。我只是想帮你,这样你就可以给出一个完整的答案,而不仅仅是西方国家更快的枪Answer@RiggsFolly如果你认为其他人是错误的或不完整的,请提交你自己的答案。评论那些小的陈述没有帮助请理解为什么有些东西不起作用。有时候,我希望我也有一个登录错误……如果你想知道的话,我是监控mysql库使用情况的人,必须勒死所有的小猫。我担心我的理智,所以尽管这是神圣的,但还是停止使用mysql扩展吧!。@Jakumi哦,我发现了错误,一旦我完成了c请在您的评论中添加提示。谢谢
<?php
$fm = fopen('main.txt','r');
// its also a good idea to check your connection worked before proceeding with any more code
$link = mysql_connect('localhost','root','');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('username');
$count=0;
while ($line = fgets($fm)) {
$new_data=@split(':',$line);
// a missing single quote after'$new_data[4]
$query="INSERT INTO `data_new`
(`directory`,`machineip`,`description`,
`state`,`status`,`instituteid`,
`category`,`project`)
VALUES ('$new_data[0]','$new_data[1]','$new_data[2]',
'$new_data[3]','$new_data[4]','$new_data[5]',
'$new_data[6]','$new_data[7]')";
// and the query must be executed inside the loop
$result = mysql_query($query);
if(!$result){
die(mysql_error());
}
}
//$result=@mysql_query($query);
//if(!$result){
// die(mysql_error());
//}
fclose($fm);
?>