2016-10-30 3 views
-1

私は、入力フォームinput1を持つregister.phpという入力フォームを持っています。私がしたいのは、input1から値を取得し、それをデータベースに格納することです。ユーザーがregister.phpの送信ボタンをクリックすると、入力ボックスinput1に入力された値をデータベースに格納するdemo.phpという別のフォームにリダイレクトされます。警告:私は次のエラーを取得するいくつかの理由警告:mysqli_query()は、パラメータ1がmysqliであることを期待しています。データベースで指定された文字列

については

mysqli_query()は、パラメータ1がCに与えられたmysqliの、文字列であることを期待:\ xamppの\ htdocsに\ myappの\ demo.phpデモ用ライン21に。 php;

demo.php:

<?php 
//Step1 
$db = mysql_connect('localhost','root','','forms1') 
or die('Error connecting to MySQL server.'); 

$db_selected = mysql_select_db('forms1' , $db); 

if(! $db_selected) { 

    die('db not selected'. mysql_error()); 
} 

echo "connected"; 


$value =$_POST['input1']; 


$sql =" INSERT INTO demo (input1) VALUES ('$value') "; 

mysqli_query($sql , $db); 

?> 

register.php:

<form action ="demo.php" method ="post" /> 

<p> Input 1:<input type ="text" name ="input1" /> </p> 
<input type ="submit" value ="submit"> 

</form> 
+2

(CF http://www.acunetix.com/websitesecurity/sql-injection/を) 'mysqlの&mysqli'.use' mysqli' 'mysql'の代わりに' mysql'が使用されています。 –

答えて

0

あなたは間違ったパラメータを使用しているあなたのコードにつきとして

bool mysql_select_db (string $database_name [, resource $link_identifier = NULL ]) 

$db_selected = mysql_select_db($db,'forms1'); 

参考:代わりにmysqlの

0

http://php.net/manual/en/function.mysql-select-db.php

使用mysqliのあなたがmysqli_query機能のマニュアルを見れば、あなたは最初のパラメータは、データベースの接続リソース(http://php.net/mysqli_query)にする必要があることがわかります。あなたのパラメータを混ぜ合わせたようです。それは次のようになります。また

mysqli_query($db, $sql);

、あなたの代わりにmysql_select_dbと(msyql_select_dbとにmysql_connectが廃止予定されているので)mysql_connectmysqli_select_dbmysqli_connect機能(C.F. http://php.net/mysqli_select_dbhttp://php.net/mysqli_connect)を使用する必要があります。あなたはmysqli_select_dbに切り替えた場合は、最初のパラメータは、データベースの接続リソースであることがわかり、それは次のようになります。

$db = mysqli_connect('localhost','root',''); $db_selected = mysqli_select_db($db, 'forms1');

か、単に:ところで

$db = mysqli_connect('localhost','root','forms');

、あなたはパラメータ値を直接クエリに渡すべきではありません。あなたが準備されたステートメントを使用する必要があります:あなたはプリペアドステートメントを使用しない場合はhttp://php.net/manual/en/mysqli.prepare.php

、あなたはSQLインジェクション攻撃の危険を冒すあなただけ混ざっ

+0

私はそれらを交換しました:mysqli_query($ db、$ sql);しかし、私はまだこの警告を受け取ります: 警告:mysqli_query()は、パラメータ1がmysqliであると考えています。リソースは32行目のC:\ xampp \ htdocs \ myapp \ demo.phpにあります。 – user3289032

+0

@ user3289032残りの答えをお読みください。すべてのmsyqli_関数(たとえば、mysqli_select_db、mysql_connectなど)を使用する必要があります。 – Cully

関連する問題