Php 如何在数据库中为列插入新名称
当我在phpmyadmin中使用新字段名创建一个新表时,有一个小问题。我正在使用for循环尝试为字段名插入数据。但出于某种原因,我犯了个错误 “您的SQL语法有错误;请检查以下手册: 对应于您的MySQL服务器版本,以便使用正确的语法 第3行“[0]VARCHAR(30)”附近 这是我的密码: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
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的更正。我是社区的新成员,正在学习英语还没有。