2012-10-09 21 views
1

這對我來說是一個嚴重的問題。我剛開始使用AJAX和PHP,但我甚至無法開始一個良好的開始。任何幫助是極大的讚賞。由於此代碼,我收到一個空白頁面,就像查詢已執行一樣,但數據庫中沒有更改。Mysql_query不起作用

<?php 
$user = "login"; 
$pass = "password"; 
$con = mysql_connect("localhost","qwerty","qwerty"); 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 

mysql_select_db("database_sky", $con); 

mysql_query("INSERT INTO players (id, username, password) VALUES ('',$user, $pass)"); 

mysql_close($con); 
?> 

我不知道發生了什麼事。我使用Apache 2.2,PHP 5,MySql 4.1

+3

'mysql_query(...)or die(mysql_error());' – deceze

+3

如果您想要一個良好的開端,不值得開始使用棄用的API。改爲使用帶有'mysqli_''或'PDO'的準備好的語句來代替。對於沒有經驗的用戶,'mysql_'已被棄用,並且非常不安全。 – anditpainsme

回答

2

您的變量永遠不會包裹在單引號中(它們的表示是字符串)。

嘗試:

INSERT INTO players 
    (id, username, password) 
    VALUES ('','$user', '$pass') 

而你原來的代碼進行評價是這樣的:

INSERT INTO players (id, username, password) VALUES ('',John, pass) 

這不起作用,因爲你需要(最有可能),輸入字符串。你寫john,不'john'

我建議做一些像$query = "INSERT INTO .......";

這樣你就可以

一)echo $query;把它輸出字符串,並把它插入到你的phpMyAdmin的(或任何你用作數據庫的接口。

b)然後你可以做mysql_query($query)。這使得它更容易組織(對我來說,在我看來)。 :)

+0

我使用Navicat for Mysql,但現在我發現我真的搞砸了^^' – ShirouWrath

-1

您需要通過$conmysql_query。以下應解決您的問題:

mysql_query("INSERT INTO players (id, username, password) VALUES ('','$user', '$pass')", $con); 

編輯:發現它是由其他海報指出,接連的錯誤;缺少值單引號。

+0

是的,更新了我的帖子以反映這一點。 – zachjs

+0

另外,我不認爲你需要'$ con'兩次。當他選擇數據庫時,看起來連接開始。 –

+1

如果他打開了多個連接,則需要指定'$ con'。即使他不這樣做,這至少會是一個好習慣。 – zachjs