我想创建一个或多个可以插入到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]')");
?>
答案 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
祝你好运!