2016-08-13 54 views
-2

每次我通過下面的代碼提交表單,我得到「查詢失敗」,但我似乎無法找到錯誤查詢失敗,只要我想插入

你在你的SQL語法中有一個錯誤; VALUES('[email protected]','060606060606','James''at at 012rnear order(pass,phone,fname,lname) 對應於您的MySQL服務器版本的正確語法1號線

請幫助我的人。

<?php 
//Start session 
session_start(); 

//Include database connection details 
require_once('../db/config.php'); 

//Array to store validation errors 
$errmsg_arr = array(); 

//Validation error flag 
$errflag = false; 

//Connect to mysql server 
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD); 
if(!$link) { 
    die('Failed to connect to server: ' . mysql_error()); 
} 

//Select database 
$db = mysql_select_db(DB_DATABASE); 
if(!$db) { 
    die("Unable to select database"); 
} 

//Function to sanitize values received from the form. Prevents SQL injection 
function clean($str) { 
    $str = @trim($str); 
    if(get_magic_quotes_gpc()) { 
     $str = stripslashes($str); 
    } 
    return mysql_real_escape_string($str); 
} 

//Sanitize the POST values 
$pass = clean($_POST['pass']); 
$phone = clean($_POST['phone']); 
$fname = clean($_POST['fname']); 
$lname = clean($_POST['lname']); 

//Create INSERT query 
$qry = "INSERT INTO order (pass, phone, fname, lname) VALUES('$pass','$phone','$fname','$lname')"; 
$result = @mysql_query($qry); 

//Check whether the query was successful or not 
if($result) { 
    header("location: success.php"); 
    exit(); 
}else { 
    die("Query failed"); 
} 
?> 

我也試圖檢查用戶輸入的是空的,這是好的,但它並沒有插入。

+0

改變你的'die'爲'迪e(「查詢失敗:」。 mysql_error())'看到實際的錯誤。 –

+1

請避免使用** mysql **。它已被棄用。使用** mysqli _ **或** PDO **。 –

+0

請參閱,更新此行後出現** **錯誤** $ result = @mysql_query($ qry)或者死亡(「Query failed:」。mysql_error());' –

回答

3

名稱'命令'是一個MySQL r eserved關鍵字。

使用反引號括表名,

$qry = "INSERT INTO `order` (pass, phone, fname, lname) VALUES('$pass','$phone','$fname','$lname')"; 

        ^enlcose table name with backtick 

BACKTICK

enter image description here

+0

我認爲這已經解決了這個問題,但是還有一個錯誤:查詢失敗:字段'member_id'沒有默認值 –

+0

這是不同的問題@NoreplyNoreply是'member_id'具有primary_key和自動遞增 –

+0

是的它是一個 –

0

並使用 「mysqli的」

$qry = "INSERT INTO `order` (pass, phone, fname, lname) VALUES('$pass','$phone','$fname','$lname')"; 
$result = mysqli_query($conn,$qry); 
+0

好吧。我會做到這一點。謝謝 –