簡體   English   中英

如何將簡單數組插入數據庫(php / MySQL)?

[英]How do I insert a simple array into a database (php/MySQL)?

我正在使用一種形式,用戶在其中進行一些選擇,然后每個選定項目的名稱都需要進入db中的表中。 用戶名可以與每個項目一起作為用戶選擇的標識符。 選擇的數量和選擇的名稱將更改,但是數據庫中的兩個字段保持不變。 我的問題是在插入時,我收到一個錯誤,即沒有列與要發送的VALUE中指定的名稱相同。 它讓我震驚了...。不知道為什么。 非常感謝您的幫助或建議。

完整代碼:

<?php 

$db = mysql_connect('localhost', 'root', 'root') or die(mysql_error());
mysql_select_db('reflex') or die(mysql_error());

$name_array = array('harp1','harp2','harp3');

if (isset($_POST['interests'])) {

    $interests_str = implode(" ", $_POST['interests']);// converts $_POST interests into a string
    $interests_array = explode(" ", $interests_str);// converts the string to an array which you can easily manipulate  




            foreach ($name_array as $row=>$name)

            {

            $username = mysql_real_escape_string($name);

            $photo = mysql_real_escape_string($_POST['interests'][$row]);

            mysql_query('INSERT INTO photos (username, photo) VALUES ("' . $username . '", ' . $photo . ')') or die(mysql_error());

            }




}



?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>array test</title>
</head>
<body>
<form action="array.php" method="post">



    <input type="checkbox" name="interests[]" value="Politics" />Politics<br />
    <input type="checkbox" name="interests[]" value="Entertainment" /><br />
    <input type="checkbox" name="interests[]" value="Tech" /><br />
    <input type="checkbox" name="interests[]" value="Health" /><br />
    <input type="checkbox" name="interests[]" value="Living" /><br />
    <input type="checkbox" name="interests[]" value="Travel" /><br />
    <input type="checkbox" name="interests[]" value="World" /><br />


    <input type="submit" value="Submit">
</form>
</body>
</html>

$ photo不在SQL語句中用引號引起來。 同樣,循環如下所示:

循環1:$ username =“ harp1”,$ photo =“ [第一個選定復選框的值]”

循環2:$ username =“ harp2”,$ photo =“ [第二個值]”

循環3:$ username =“ harp3”,$ photo =“ [第三值]”

這沒有道理...

使用雙引號字符串創建數據庫查詢:

mysql_query("INSERT INTO photos (username, photo) VALUES ('$username', '$photo')")
    or die(mysql_error());

您忘記在$photo周圍加上引號。 雙引號字符串使它們更易於閱讀,從而減少了此類錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM