2012-10-11 52 views
1

我在php.net網站上準備好的聲明示例,我似乎無法讓我的版本工作。Php編寫的聲明

$link = mysql_connect("localhost","root","mypassword") or die (mysql_error()); 

$query= $link->prepare("select * from users WHERE userid = ? AND password=password('?')"); 
$query->bindParam(1, $userid); 
$query->bindParam(2, $password); 
$query->execute(); 

if (mysql_num_rows($query)==1) 
    { 
     echo "Welcome, ",$userid,"\n"; 
    } 
    mysql_close($link); 

我得到的錯誤:語法錯誤,意想不到的T_VARIABLE

我似乎無法弄清楚什麼是錯。任何建議表示讚賞。

謝謝。

+0

什麼是整個錯誤信息?以及它指向的相應代碼? – jdstankosky

+0

@jdstankosky它指向第二行($ query = $ link-> prepare(... – user818502

+1

'mysql_connect'不能作爲一個對象調用 – jdstankosky

回答

1

變化echo "Welcome, ",$userid,"\n";

echo "Welcome, " . $userid . "\n";

+0

您可以將逗號分隔的值列表傳遞給'echo' – andrewsi

+0

@ ''''''''''''''''''''''''''''''打印它們作爲點運算符的單個值。 – raidenace

+0

嗯我不知道。謝謝你的擡頭 –

3

使用mysqli_*$link = mysqli_connect(...

+0

@Raidenance恐怕我不是100%確定你說的是什麼 – user818502

+0

@ user818502 - 你是使用mysqli_ *和mysql_ *函數的混合,你需要獨佔地使用mysqli_ ones – andrewsi

+0

@ user818502:當你使用mysql_connect時,它只返回一個'resource',你不能運行像prepare()這樣的方法, 'bindParam()' 在上面。 'mysqli_connect'(注意** i **)是新的'mysqli'系列函數中的連接函數,它返回一個對象而不是資源。在這個對象上,你可以使用'prepare()','bindParam()'等函數 – raidenace

0

更改下面的代碼

` echo "Welcome, ",$userid,"\n";`

` echo "Welcome, " . $userid . "\n";`

這是因爲PHP使用'。'來連接字符串。