2016-03-24 38 views
0

我有一個簡單的查詢,我正在使用基於表單提交來插入記錄,但它不會將記錄寫入數據庫。這也沒有拋出一個錯誤。我使用了一個var_dump並驗證了變量是正確發佈的,所以我認爲問題出現在查詢語法中,但我也檢查過了。PHP to SQL插入不工作

任何幫助或指導,非常感謝。這裏是代碼:

if (isset($submit)){ 

$user_id = $_SESSION['user_id']; 
$anthem1 = $_POST['anthem1']; 
$cointoss2 = $_POST['cointoss2']; 

$query = "INSERT INTO mypicks ("; 
$query .= " user_id, anthem1, cointoss2"; 
$query .= ") VALUES ("; 
$query .= " '{$user_id}', '{$anthem1}', '{$cointoss2}'"; 
$query .= ")"; 
$result = mysqli_query($connection, $query); 

} 
+0

查詢語法正確無誤後進行清理。你有沒有檢查'$ submit'的值? ('var_dump($ submit);') – fusion3k

+0

當然沒有錯誤,因爲你不通過檢查mysqli_query()的返回值來做任何sql錯誤處理。我希望你在你的代碼中連接到一個mysql服務器。 – Shadow

+0

在'mysqli_query($ connection,$ query)'的末尾添加一個'或die(mysql_error($ connection))'來獲取錯誤信息,即。 '$ result = mysqli_query($ connection,$ query)或者die(mysql_error($ connection));' – Sean

回答

1

你會想在你的代碼中添加一些檢查。

首先你要確保你的數據庫連接正在發生的事情:

$connection = new mysqli('localhost', 'username', 'password', 'database'); 

if($connection->connect_errno > 0){ 
    die('Unable to connect to database [' . $connection->connect_error . ']'); 
} 

接下來的事情,你要確保你的$submit變量設置,因此您的代碼塊實際上是發射。

如果是,請確保您的查詢工作:

$user_id = $_SESSION['user_id']; 
$anthem1 = $_POST['anthem1']; 
$cointoss2 = $_POST['cointoss2']; 

$stmt = $connection->prepare("INSERT INTO mypicks (user_id, anthem1, cointoss2) VALUES (?, ?, ?)"); 
$stmt->bind_param("sss", $user_id, $anthem1, $cointoss2); 
$stmt->execute(); 

if(!$result = $stmt->get_result()){ 
    die('There was an error running the query [' . $connection->error . ']'); 
} 

也不要忘記病房

$stmt->close(); 
$connection->close(); 
+1

向下投票,因爲你可以在你的答案中使用準備好的陳述。 –

+0

@AlBundy好點,我更新了我的答案以反映這一點。 – bmcculley

+0

...並顛倒了... –