Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在数据库中为列插入新名称_Php_Mysql_Sql - Fatal编程技术网

Php 如何在数据库中为列插入新名称

Php 如何在数据库中为列插入新名称,php,mysql,sql,Php,Mysql,Sql,当我在phpmyadmin中使用新字段名创建一个新表时,有一个小问题。我正在使用for循环尝试为字段名插入数据。但出于某种原因,我犯了个错误 “您的SQL语法有错误;请检查以下手册: 对应于您的MySQL服务器版本,以便使用正确的语法 第3行“[0]VARCHAR(30)”附近 这是我的密码: include 'simple_html_dom.php'; include ('connection.php'); function getsquad($url, $tablename){ $ht

当我在phpmyadmin中使用新字段名创建一个新表时,有一个小问题。我正在使用for循环尝试为字段名插入数据。但出于某种原因,我犯了个错误

“您的SQL语法有错误;请检查以下手册: 对应于您的MySQL服务器版本,以便使用正确的语法 第3行“[0]VARCHAR(30)”附近

这是我的密码:

include 'simple_html_dom.php';
include ('connection.php');


function getsquad($url, $tablename){

$html = file_get_html($url);

$player = array();

foreach($html->find('td[align=left]') as $element) {
   if ($element->children(0)) { // work only when children exists
          array_push($player ,$element->children(0)->innertext);
   }
}

$length = count($player);

for($i = 0;$i<=$length;$i++){
// Create a MySQL table in the selected database
mysql_query("CREATE TABLE $tablename(

player[$i] VARCHAR(30)")
or die(mysql_error());  
}

echo "Table Created!";

}

$Squad = new squad();
$Squad->getsquad('site', 'Players'); 

?>
包括“simple_html_dom.php”;
包括('connection.php');
函数getsquad($url,$tablename){
$html=file\u get\u html($url);
$player=array();
foreach($html->find('td[align=left]')作为$element){
if($element->children(0)){//仅在子项存在时工作
数组推送($player,$element->children(0)->innertext);
}
}
$length=计数($player);
对于($i=0;$igetsquad('site'、'Players');
?>

我知道我的函数的第一部分正在工作,所以我认为这不是一个PHP错误,但不是100%确定。

您没有在查询结束时关闭
,也没有在
player
变量中关闭
$

CREATE TABLE $tablename( $player[$i] VARCHAR(30) )
您的代码应该如下所示:

 mysql_query("CREATE TABLE $tablename($player[$i] VARCHAR(30)") or die(mysql_error());

您在player之前忘记了
$
。正确的方法是:

mysql_query("CREATE TABLE $tablename($player[$i] VARCHAR(30)") or die(mysql_error());
更新: 正如user876345所说,您忘记了关闭括号。因此,代码应该是:

mysql_query(" CREATE TABLE $tablename( $player[$i] VARCHAR(30) ) ") or die(mysql_error());

命名一列
player[n]
不可能。你的目标是什么?为每个玩家创建一个单独的表感觉像是糟糕的数据库设计,你可能想重新考虑这种方法。我正在尝试获取玩家名称并将其放在一个表中,谢谢。虽然很小,但花了些时间来更新Hanks@david cain的更正。我是社区的新成员,正在学习英语还没有。