如何正确声明包含mysql查询列和值的php变量?事情显然在引用中,我尝试了几种组合并没有成功。
这是在php中声明的查询:
$query = "INSERT INTO table1(pt1, pt2, pt3, pt4, pt5, pt6, pt7, pt8) VALUES ('$q[1]','$q[2]','$q[3]','$q[4]','$q[5]','$q[6]','$q[7]','$q[8]')";
这是我在php中的错误变量:(两种错误的方法)
$pt_all = pt1, pt2, pt3, pt4, pt5, pt6, pt7, pt8;
for($i=1;$i<9;$i++) {
$q_all .= '$q[$i]',;
}
这是为了将持有者变量放入php中的sql查询:
$query = "INSERT INTO table1($pt_all) VALUES ($q_all)";
让它更容易,更短。还有其他更好的技术吗?
答案 0 :(得分:0)
首先,不要使用mysql_ *函数,因为这些已被弃用。使用mysqli_ *或PDO。那就是说,你可能需要这样的东西:
$fields = "pt".join(", pt",array_keys($q)); //pt1, pt2, pt3, ..
$values = "'".join("','",array_values($q))."'"; //values
echo "INSERT INTO ({$fields}) VALUES ({$values})";
显然,你需要调整它以满足你的要求,但这应该让你对数组操作有很好的理解。
答案 1 :(得分:0)
以关联数组开头。举个例子,我会用水果......
$array = array("banana" => "yellow", "apple" => "red", "kiwi" => "green");
通过并制作字符串&#34;香蕉,苹果,猕猴桃&#34;和&#34;黄色,红色,绿色&#34;
$fields = array();
$values = array();
foreach($array as $key => $val){
$fields[] = $key;
$values[] = $val;
}
现在连接成一个用作SQL
的字符串$query = 'INSERT INTO table1("'.implode('", "', $fields).'") ';
$query .= 'VALUES ("'.implode('", "', $values).'");';
echo $query; // "INSERT INTO table1("banana", "apple", "kiwi") VALUES ("yellow", "red", "green");
希望这是你正在寻找的东西。