Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql\u查询中使用变量作为数组元素号_Mysql_Arrays_Variables_Numbers_Element - Fatal编程技术网

在mysql\u查询中使用变量作为数组元素号

在mysql\u查询中使用变量作为数组元素号,mysql,arrays,variables,numbers,element,Mysql,Arrays,Variables,Numbers,Element,如果问题有点让人困惑,我很抱歉,请尽量把它弄清楚。 基本上,我有以下代码: for($i = 0;$i < 5;$i++) { $query = mysql_query("INSERT INTO words (lecture, pol, ukr) VALUES ($lecture, $pol_text[$i], $ukr_text[$i])", $db) or die("Data not inserted"); } 可以使用foreach循环,并确保转义查

如果问题有点让人困惑,我很抱歉,请尽量把它弄清楚。
基本上,我有以下代码:

for($i = 0;$i < 5;$i++)
    {
        $query = mysql_query("INSERT INTO words (lecture, pol, ukr) VALUES ($lecture, $pol_text[$i], $ukr_text[$i])", $db) or die("Data not inserted");
    }

可以使用foreach循环,并确保转义查询中的值:-

<?  
if (isset($_POST['submit']))
{
    if (isset($_POST['pol_text'])){$pol_text = $_POST['pol_text'];}
    if (isset($_POST['ukr_text'])){$ukr_text = $_POST['ukr_text'];}
    if (isset($_POST['lecture'])){$lecture = $_POST['lecture'];}


    foreach($ukr_text AS $key=>$value)
    {
        $query = mysql_query("INSERT INTO words (lecture, pol, ukr) VALUES ('".mysql_real_escape_string($lecture)."', '".mysql_real_escape_string($pol_text[$key])."', '".mysql_real_escape_string($ukr_text[$key])."')", $db) or die("Data not inserted");
    }

    unset($_POST['submit']);
}
?>

或修改为仅插入多行:-

<?  
if (isset($_POST['submit']))
{
    if (isset($_POST['pol_text'])){$pol_text = $_POST['pol_text'];}
    if (isset($_POST['ukr_text'])){$ukr_text = $_POST['ukr_text'];}
    if (isset($_POST['lecture'])){$lecture = $_POST['lecture'];}

    $ins_array = array();

    foreach($ukr_text AS $key=>$value)
    {
        $ins_array[] = "('".mysql_real_escape_string($lecture)."', '".mysql_real_escape_string($pol_text[$key])."', '".mysql_real_escape_string($ukr_text[$key])."')";
    }

    if (count($ins_array > 0))
    {
        $query = mysql_query("INSERT INTO words (lecture, pol, ukr) VALUES ".implode(",", $ins_array), $db) or die("Data not inserted");
    }

    unset($_POST['submit']);
}
?>

你能发布一些示例数据吗?@mattes嗯,我有5个文本字段,每个字段分别有
name=pol_text[]
name=pol_text[]
。我正在提交一份表格,并在考虑如何使其自动化。我想我可以手动写5次,但是为了将来的参考,如果我有5个以上的字段,我想知道可能的方法来自动完成,谢谢!语句“VALUES”部分中的php变量需要用单引号(')括起来,以便将插入的值转换为“literal value”,除非数据库列是数字。您可能需要在“大括号”({})中包含变量名,以确保准确的值替换。i、 e.{$pol_text[$i]}.@RyanVincent成功了!非常感谢你!不客气-很高兴这有帮助。:-)
<?  
if (isset($_POST['submit']))
{
    if (isset($_POST['pol_text'])){$pol_text = $_POST['pol_text'];}
    if (isset($_POST['ukr_text'])){$ukr_text = $_POST['ukr_text'];}
    if (isset($_POST['lecture'])){$lecture = $_POST['lecture'];}

    $ins_array = array();

    foreach($ukr_text AS $key=>$value)
    {
        $ins_array[] = "('".mysql_real_escape_string($lecture)."', '".mysql_real_escape_string($pol_text[$key])."', '".mysql_real_escape_string($ukr_text[$key])."')";
    }

    if (count($ins_array > 0))
    {
        $query = mysql_query("INSERT INTO words (lecture, pol, ukr) VALUES ".implode(",", $ins_array), $db) or die("Data not inserted");
    }

    unset($_POST['submit']);
}
?>