2017-02-07 9 views
-1

スクリプトをphp5からphp7に編集しようとしましたが、機能しません。あなたは私のスクリプトで間違ったことを知っていますか?残念ながら、それはエラーを表示していません。 :(接続データベースでphp5からphp7に移行する

私はDB_NAME、それを持つユーザーなどを与えることはできません理解しているよう。

mysqli_select_db

<?php 

define('DB_NAME', '**'); 
define('DB_USER', '**'); 
define('DB_PASS', '**'); 
define('DB_HOST', 'localhost'); 

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASS); 

if (!$link) { 
    dir('There was a problem when trying to connect to the host. ohnooo! ' . mysqli_error());  
} 

$db_selected = mysqli_select_db(DB_NAME, $link); 

if (!$link) { 
    dir('There was a problem when trying to connect to the database. ohnoo! ' . mysqli_error());  
} 

$soortisolatie = $_POST['soortisolatie']; 
$postcode = $_POST['postcode']; 
$plaats = $_POST['plaats']; 
$straat = $_POST['straat']; 
$huisnummer = $_POST['huisnummer']; 
$beschrijving = $_POST['beschrijving']; 
$typewoning = $_POST['typewoning']; 
$woonoppervlakte = $_POST['woonoppervlakte']; 
$bouwjaar = $_POST['bouwjaar']; 
$datum = $_POST['datum']; 
$aanhef = $_POST['aanhef']; 
$voornaam = $_POST['voornaam']; 
$achternaam = $_POST['achternaam']; 
$telefoon = $_POST['telefoon']; 
$source = $_POST['source']; 

$sql = "INSERT INTO leads (soortisolatie, postcode, plaats, straat, huisnummer, beschrijving, typewoning, bouwjaar, datum, aanhef, voornaam, achternaam, telefoon, source) VALUES ('".$soortisolatie."', '".$postcode."', '".$plaats."', '".$straat."', '".$huisnummer."', '".$beschrijving."', '".$typewoning."', '".$woonoppervlakte."', '".$bouwjaar."', '".$datum."', '".$aanhef."', '".$voornaam."', '".$achternaam."', '".$telefoon."', '".$source."')"; 

if (!mysqli_query($sql)) { 
    die('Error: ' . mysqli_error()); 
} 

header("Location: url"); 
exit; 

?> 
+1

'mysqli_query()'は2つの引数をとりません – nogad

+1

大きな穴があいています。ユーザーからのデータをSQLクエリに直接入力すると、SQLインジェクション(https://en.wikipedia.org/wiki/Sql_injection)が開かれます。誰かが入力フィールドの1つに一重引用符( ')を含む値を入力した場合、結果のクエリがどのように見えるかを想像してください。クエリで代わりにプレースホルダを使用します。 – aferber

+0

@aferber、ご意見ありがとうございます。ただし、パスワードやその他のものは保存しません。一重引用符( ')の結果を知りたい。 SQLインジェクションはDDoS攻撃またはDNSハイジャックの結果にもなりますか? –

答えて

0

最初のパラメータは、接続パラメータと第二であります最初の変更は次のとおりです。

$db_selected = mysqli_select_db($link,DB_NAME); 

mysqliには2つのパラメータがあります。最初は接続変数、2番目はクエリです。だからここで変更は

if (!mysqli_query($link,$sql)) { 
    die('Error: ' . mysqli_error($link)); 
} 

私はこれが問題を解決することを望む。

+0

私はそれらの変更を編集しました。私はエラーログにこれを見つけました[Tue Feb 07 22:05:50.839344 2017] [:error] [:エラー: pid 13153:tid 34607289344] [クライアント2a02:a441:5181:1:d160:84f5:fb34:14cb:63240] FastCGI:サーバー "/ var/run/php-fpm/php70/php-cgi" stderr:PHPメッセージ: PHPの警告:mysqli_error()は、/sites/huisisolerenkosten.nl/www/aanvraag.phpのreferer:referer:http://huisisolerenkosten.nl/ –

+0

にあるmysqlの正式なパラメータ1を期待しています。mysqlは正式にPHP v5.5.0で廃止されました。 PHP v7で削除されました – Anonymous

+0

私は答えを編集しました – Anonymous

関連する問題