PHP使用数组插入sql

时间:2014-03-26 15:44:17

标签: php mysql sql arrays amazon-web-services

以下代码用于从php run_instance脚本中获取返回值。但是,返回的值($ instanceIds)采用数组格式。对于$ instanceIds数组中包含的每个值,我需要将这些值以及userName和serverName插入到单独行中的sql数据库中。但是,我感到困惑的是,我不知道如何以某种方式将$ instanceIds插入数据库,以便一次又一次地插入userName和serverName,直到数组结束。非常感谢任何帮助

<?php
session_start();
$name=mysql_real_escape_string($_SESSION['username']);

include 'mysql_connect.php';

// Select the database to use
mysql_select_db("database",$con);

// Describe the now-running instance to get the public URL
$result = $ec2Client->describeInstances(array(
    'InstanceIds' => $instanceIds,
));


$server_record = mysql_query("INSERT INTO server_tbl (userName, serverName, serverId, isRunning) VALUES ('$name', 'runtest', '$instanceIds', 'X'");

print_r($instanceIds);

?>

2 个答案:

答案 0 :(得分:2)

foreach ($instanceIds as $instanceId) {
    $server_record = mysql_query("INSERT INTO server_tbl "
        . "(userName, serverName, serverId, isRunning) "
        . "VALUES ('$name', 'runtest', '$instanceId', 'X'");
}

答案 1 :(得分:0)

  1. 你真的,真的不应该使用mysql_real_escape_string()或mysql_query()或任何mysql函数。它们已被弃用,不安全,并且将来会从PHP中删除,从而破坏整个应用程序。使用mysqliPDO代替,请为自己和用户造成很大的麻烦。

  2. 使用foreach循环迭代数组。

    foreach ($instanceIds as $id){
        $sql = "INSERT INTO server_tbl (userName, serverName, serverId, isRunning) VALUES ('$name', 'runtest', '$id', 'X')";
    
        //do your insert here with the above SQL statement, depending on whether you use mysqli or PDO