使用php从for循环创建和插入变量到mysql

时间:2014-04-25 18:39:58

标签: php mysql sql

我想创建一个或多个可以插入到sql查询中的变量,而不是像我下面的代码那样手动执行。

这是可能的简单的PHP,而不是使用PDO,只是某种技巧,将解决这个问题。

你可以看到我手动插入10列和10个值,我可以缩短吗? 所以,我想要一个由pt1-pt10组成的变量/数组,另一个由[1] -a [10]组成的变量/数组。

for($j=1;$j<11;$j++) {
    $a[$j] = "";
}

<?php
$host = 'localhost';
$user = 'root';
$pass = '';
$db   = 'my_db';
$table = 'jos_answers';

$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("Can not connect.");

$result = mysql_query("INSERT into ".$table."(id, title, pt1, pt2, pt3, pt4, pt5, pt6, pt7, pt8, pt9, pt10) VALUES ((select id from jos_content where title='$title'),'$title','$a[1]','$a[2]','$a[3]','$a[4]','$a[5]','$a[6]','$a[7]','$a[8]','$a[9]','$a[10]')");

?>

2 个答案:

答案 0 :(得分:0)

for($j=1;$j<11;$j++) {
    $a["pt".$j] = $j;
}


"INSERT into ".$table. "(id, title,".implode(",", array_keys(a)).") VALUES ((select id from jos_content where title='$title'),'$title',".implode(",", array_values(a)).")";

答案 1 :(得分:0)

试试这个:

$insert = "INSERT INTO" . $table . "(id, title,";
$value = " VALUES((select id from jos_content where title='$title'),'$title',";
for($x = 1; $x < 11; $x++){
    $insert .= " pt" . $x . ",";
    $value .= " '$a[" . $x . "]'," //this line is iffy....
}
$insert = substr($insert, 0, -1);//to remove last comma
$value = substr($value, 0, -1);//to remove last comma 
$insert .= ")";//final paren
$value .= ")";//final paren
$sql = $insert . $value; //combine parts
$result = mysql_query($sql);

我之所以认为这条线是不确定的原因是因为'变形有点让我感到困惑。您是否希望将varibles值插入数据库?如果是这样,我会改用这一行:

$values .= " " . $a[$x] . ",";

如果你想要'和值,那么:

$values .= " '" . $a[$x] . "',";

这是一个明显编辑的代码的工作示例,因为它不在您的SQL环境中,并且您没有向我们提供所有变量值:http://viper-7.com/cDAcRl

祝你好运!

相关问题