2017-12-29 23 views
0

私のコードに間違いがあるのを理解するのに助けが必要です。私はすでに$ sqlをするvariabelを返すようにしようとしたSQL INSERT WEIRD構文エラーPHPからPHP

mysqli_query($db,$sql) or die("Error: ".mysqli_error($db)); 
echo "Data Berhasil Ditambahkan"; 
mysqli_close($db); 

この時点でこの

<?php 

include('./config/db.php'); 

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

$p1 = mysqli_real_escape_string($db,$_POST['txtp1']); 
$p2 = mysqli_real_escape_string($db,$_POST['txtp2']); 
$p3 = mysqli_real_escape_string($db,$_POST['txtp3']); 
$p4 = mysqli_real_escape_string($db,$_POST['txtp4']); 
$p5 = mysqli_real_escape_string($db,$_POST['txtp5']); 
$p6 = mysqli_real_escape_string($db,$_POST['txtp6']); 
$p7 = mysqli_real_escape_string($db,$_POST['txtp7']); 
$p8 = mysqli_real_escape_string($db,$_POST['txtp8']); 
$p9 = mysqli_real_escape_string($db,$_POST['txtp9']); 
$p10 = mysqli_real_escape_string($db,$_POST['txtp10']); 
$p11 = mysqli_real_escape_string($db,$_POST['txtp11']); 
$p12 = mysqli_real_escape_string($db,$_POST['txtp12']); 
$p13 = mysqli_real_escape_string($db,$_POST['txtp13']); 
$p14 = mysqli_real_escape_string($db,$_POST['txtp14']); 
$p15 = mysqli_real_escape_string($db,$_POST['txtp15']); 
$p16 = mysqli_real_escape_string($db,$_POST['txtp16']); 
$p17 = mysqli_real_escape_string($db,$_POST['txtp17']); 
$p18 = mysqli_real_escape_string($db,$_POST['txtp18']); 
$p19 = mysqli_real_escape_string($db,$_POST['txtp19']); 
$p20 = mysqli_real_escape_string($db,$_POST['txtp20']); 
$p21 = mysqli_real_escape_string($db,$_POST['txtp21']); 
$p22 = mysqli_real_escape_string($db,$_POST['txtp22']); 

$sql = 
" 
START TRANSACTION; 
INSERT INTO `kualitas_produk`(`responden`,`p1`,`p2`,`p3`,`p4`,`p5`,`p6`,`p7`,`p8`,`p9`) VALUES ('','$p1','$p2','$p3','$p4','$p5','$p6','$p7','$p8','$p9'); 
SELECT LAST_INSERT_ID() INTO @LASTID; 
INSERT INTO `harga_produk`(`responden`,`p10`,`p11`,`p12`) VALUES (@LASTID,'$p10','$p11','$p12'); 
INSERT INTO `keputusan_pembelian`(`responden`,`p13`,`p14`,`p15`,`p16`,`p17`,`p18`,`p19`,`p20`,`p21`,`p22`) VALUES (@LASTID, '$p13','$p14','$p15', '$p16','$p17','$p18', '$p19','$p20','$p21', '$p22'); 
INSERT INTO `recap`(`responden`,`kualitas`,`harga`,`keputusan`) VALUES ('',@LASTID,@LASTID,@LASTID); 
COMMIT; 
"; 

のように、このコードは、私はクエリを実行する方法

Error: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'INSERT INTO kualitas_produk (responden , p1 , p2 , p3 , p4 , p5 , p6 , p7 ,`p8' at line 2

ここで、このエラーを持っていますエラーの場合は、phpmyadminで手動で貼り付けてください。コードにエラーはまったくありません。

問題がどこにあるのか?任意のヘルプが評価されます

SOLVED BY M.KHALID READ THE COMMENT BELLOW. THANK YOU GUYS

+1

このクエリをどのように実行していますか? –

+0

クライアントライブラリは、単一の文字列で複数のステートメントを使用できますか?私は最初のセミコロンの直後であるというエラーからそれを疑う。 –

+0

このようなクエリには[mysqli :: multi_query](http://php.net/manual/en/mysqli.multi-query.php)を使用する必要があります。 –

答えて

0

一度に複数のSQLステートメントをmysqli_queryに送信することはできません。

multi_queryはセキュリティホールです。それぞれのステートメントにmysqli_queryを使用するほうが良いでしょう。そしてそれはあなたがより良いエラーをチェックすることができます。