2017-11-16 13 views
0

データベースにデータを挿入する必要があるPHPコードを書きましたが、エラーObject of class mysqli_result could not be converted to string in /opt/lampp/htdocs/SE1/insert.php on line 13が表示されています。私はそれを解決する方法がわかりません。ここでフォームからデータベースにデータを挿入するには?

は、PHPのコードです:

if(isset($_POST['submit'])){ // Fetching variables of the form which travels in URL 
    $srn = $_POST['srn']; 
    $company = $_POST['company']; 
    $crn = mysqli_query($link,"select crn from company where name='$company'"); 
    $type = mysqli_query($link,"select typeofjob from company where name ='$company'"); 
     if($srn !=''||$company !=''){ 
      //Insert Query of SQL 
      $query = mysqli_query($link,"insert into placement(srn, crn, typeofjob) values ('$srn', '$crn', '$type',)"); 
      echo "<br/><br/><span>Data Inserted successfully...!!</span>"; 
     } 
     else{ 
      echo "<p>Insertion Failed <br/> Some Fields are Blank....!!</p>"; 
     } 
} 

ここplacement

CREATE TABLE `placement` (
    `srn` char(10) NOT NULL, 
    `crn` int(11) NOT NULL, 
    `typeofjob` int(11) NOT NULL, 
    `tier` int(11) NOT NULL, 
    `ctc` double NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=latin1; 
+1

(SRN、CRN、typeofjob)の値( '$のSRN' を取ります、 '$ crn'、 '$ type'))最後に – Marcus

+2

[SQLインジェクション](https://en.wikipedia.org/wiki/SQL_injection)にmuttするための '、'があります。私の会社の名前が ''; crnから削除します。 - '? – Pred

+0

@Marcusありがとう、私はそれに気付かなかったが、それはそれを変更した後でも同じエラーを与える。 – coder7777

答えて

0

mysqli_query関数呼び出し

$crn = mysqli_query($link,"select crn from company where name='$company'"); 

がする必要のある、型mysqli_resultのオブジェクトを返すのテーブル作成ですその内容をデータベースに挿入する前に読み込み/取り出しが可能別の呼び出しで。 $ crnと$ type変数は文字列ではなく、mysqli_result [s]です。 また、 'company'テーブルから同じ行の2つの列を読み取ろうとしている間は、それらを1つの呼び出しにマージします。

$companyInfo = mysqli_query($link,'select crn, typejob from company where name="'. $company .'"'); 
    if($srn !='' || $company !=''){ 
     //Foreach company result row Insert Query of SQL 
     while ($row = mysqli_fetch_array($companyInfo, MYSQL_ASSOC)) { 
      $query = mysqli_query($link,'insert into placement(srn, crn, typeofjob) values ("'. $srn .'", "'. $row['crn'] .'", "'. $row['typejob'] .'")"');    
     } 
     echo "<br/><br/><span>Data Inserted successfully...!!</span>"; 
    } 
    else{ 
     echo "<p>Insertion Failed <br/> Some Fields are Blank....!!</p>"; 
    } 

この手順が機能することを確認した後、SQLインジェクションのケア(How can I prevent SQL injection in PHP?を読んで)と配置に挿入する `で$ _POST検証

+0

私はまだこれを取得しており、挿入が機能していません。 ' 注意:定義されていない定数の使用MYSQL_ASSOC - 14行目の/opt/lampp/htdocs/SE1/insert.phpであると仮定します 警告:mysqli_fetch_array()は、パラメータ2が/ opt/lampp/htdocs/SE1/insert.php on line 14' – coder7777

+0

Swith to mysqli_fetch_array関数は、使用しているPHPのバージョンに応じて修正する必要があります。また、会社のテーブルにデータがありますか? – Tadasbub

関連する問題