Php 创建新表时出现MySQL语法错误
我对下面代码中的查询没有问题。但是第二个代码抛出了错误 您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第1行“”附近要使用的正确语法 工作代码:Php 创建新表时出现MySQL语法错误,php,mysql,Php,Mysql,我对下面代码中的查询没有问题。但是第二个代码抛出了错误 您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以获取第1行“”附近要使用的正确语法 工作代码: 生成代码时出错 <?php // GENERATE TABLE FROM FIRST LINE OF CSV FILE $inputFile = 'google.csv'; $tableName = 'google_csv'; $fh = fopen($inputFile, 'r'); $contents = fr
生成代码时出错
<?php
// GENERATE TABLE FROM FIRST LINE OF CSV FILE
$inputFile = 'google.csv';
$tableName = 'google_csv';
$fh = fopen($inputFile, 'r');
$contents = fread($fh, 5120); // 5KB
fclose($fh);
$fileLines = explode("\n", $contents);
$fieldList = explode(',', $fileLines[0]);
$lastField=count($fieldList)-1;
echo "Total Fields :".count($fieldList)."<br>";
echo "Last Field :".$lastField."<br>";
$result ="CREATE TABLE $tableName(";
for($i = 0; $i < count($fieldList); $i++)
{
if(preg_match('/[1-9]/', $fieldList[$i]))
{
if ($i==$lastField)
{$result .=str_replace(array(" ",'-'),"_",$fieldList[$i]). ' int(11)';}
else
{$result .=str_replace(array(" ",'-'),"_",$fieldList[$i]). ' int(11),';}
}
else
{
if($i==$lastField)
{$result .=str_replace(array(" ",'-'),"_",$fieldList[$i]). ' varchar(80)';}
else
{$result .=str_replace(array(" ",'-'),"_",$fieldList[$i]). ' varchar(80),';}
}
}
$result .=")";
if ($result) {echo $result."<br>".$i."<br>";} else {Echo "Some Problem!";}
mysql_connect("localhost", "","") or die(mysql_error());
mysql_select_db("") or die(mysql_error());
mysql_query($result);
echo mysql_error();
?>
我在第一个代码中使用了这里的$result
输出,它工作得非常好!我在第二个代码中哪里出错了
echo给出的$result
创建表google_csv(80)、Given_Name varchar(80)、Additional_Name varchar(80)、Family Name varchar(80)、Yomi_Name varchar(80)、Given_Name_Yomi varchar(80)、Additional_Name_Yomi varchar(80)、Family_Name_Yomi varchar(80)、Name前缀varchar(80)、Name后缀varchar(80)、缩写varchar(80)、昵称varchar(80)、短名varchar(80),婚前姓名varchar(80),生日varchar(80),性别varchar(80),地点varchar(80),账单信息varchar(80),目录服务器varchar(80),里程varchar(80),职业varchar(80),爱好varchar(80),敏感度varchar(80),优先级varchar(80),主题varchar(80),注释varchar(80),组成员varchar(80),电子邮件(1)`ÿþName`
请不要将
mysql.*
函数用于新代码。它们不再得到维护,社区已开始恢复。看到了吗?相反,你应该学习并使用或。如果你不能决定,试试看。如果你想学习,。你是否能够echo$result代码>发送到查询之前?如果第一段代码正常工作,则更有可能是有人在编写PHP代码时疯了,而创建表查询并不是您想象的那样。$result echo是创建表google_csv(名称varchar(80)、给定名称varchar(80)、附加名称varchar(80),Family_Name…@user1407430您能通过编辑将整个结果弹出到问题中吗?语法错误可能在问题中的任何地方,伙计。当然,很抱歉……在一分钟内……我注意到当我编辑问题进行格式化时,OP说它是工作代码?$result回显创建表google_csv(ÿþName varchar(80),给定名称varchar(80),附加名称varchar(80),Family_Name…@user1407430从一个很好的列名练习中,可以很容易地键入列名。正如我前面所说,这是我在查看您的问题时看到的第一件事。我建议尝试重命名该字段,您可能会发现您的其余代码已经就绪。@rkosegi这是由代码…重命名不会成为一项艰巨的任务吗?ÿþ-是UTF-8 BOM。在某些情况下,它作为前两个字节添加到UTF8文件中。
`ÿþName`