2016-06-12 44 views
0

這是我的目標 1.我只有一個ID從服務器發送與字符串分隔的逗號 這樣它看起來像:ID = 1,名稱=藍,紅,綠,黃 2.這是我的嘗試: 2.1我嘗試通過使用此代碼PHP:插入單獨的逗號字符串值作爲多個數組的值進入MySql

$myString = "Red,Blue,Black"; 
$myArray = explode(',', $myString); 

2.2更改名稱陣列和我盡我插入這樣的:

$sql="INSERT INTO `cat_interest`(`id`,`categories`) VALUES (1,'".$myArray["categories"]."'"; 
      if (!$result = $mysqli->query($sql)){ 
        $message = array('Message' => 'insert fail'); 
        echo json_encode($message);   
      }else{    
        $message = array('Message' => 'new record inserted'); 
        echo json_encode($tempArray);  
      } 

他再是我的完整代碼視圖

<?php 
define('HOST','serveraddress'); 
define('USER','root'); 
define('PASS','pass'); 
define('DB','dbname'); 
ini_set('display_errors',1); 
//ini_set('display_startup_errors', 1); 
error_reporting(E_ALL); 

      $mysqli = new mysqli(HOST,USER,PASS,DB); 
    $message= array();  
     $myString = "Red,Blue,Black";// incoming string comma names 
     $myArray = explode(',', $myString); 

     $sql="INSERT INTO `cat_interest`(`id`,`categories`) VALUES (1,'".$myArray["categories"]."'"; 
       if (!$result = $mysqli->query($sql)){ 
         $message= array('Message' => 'insertion failed'); 
         echo json_encode($message);   
       }else{    
         $message= array('Message' => 'new record inserted'); 
         echo json_encode($message); 
       } ?> 

這就是我想達到以下

ID      分類
        RED
       藍
       黑色

插入後

請幫助我不知道我做錯了

回答

2

雖然這個SQL是無效的,你永遠不會關閉values。爆炸也不建立關聯的數組。

的你如何能建立一個有效的SQL語句粗略的例子是

$myString = "Red,Blue,Black";// incoming string comma names 
$myArray = explode(',', $myString); 
print_r($myArray); 
$sql = "INSERT INTO `cat_interest`(`id`,`categories`) VALUES"; 
foreach($myArray as $value){ 
    $sql .= " (1, '{$value}'),"; 
} 
$sql = rtrim($sql, ','); 

演示:https://eval.in/587840

疑問時如何在構建使用數組print_rvar_dump。當在mysqli中使用錯誤報告時遇到問題時,http://php.net/manual/en/mysqli.error.php

此外,在目前的使用情況,你都沒有開到SQL注入,但如果$myString來自用戶的輸入,或者你的數據庫,你可以。你應該看看使用參數化查詢; http://php.net/manual/en/mysqli.quickstart.prepared-statements.php

+0

哇,這是真棒,但如果如果我想插入之前,從逗號分隔的春季檢查重複值? – Michael

+0

使用http://php.net/manual/en/function.array-unique.php,演示:https://eval.in/587857。 – chris85

相關問題