在MySQL中为INSERT查询声明php变量

时间:2014-04-22 20:12:10

标签: php mysql sql

如何正确声明包含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)"; 

让它更容易,更短。还有其他更好的技术吗?

2 个答案:

答案 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");

希望这是你正在寻找的东西。