2015-05-05 42 views
0

我只是有一個查詢:查詢像了shell_exec(「回聲%的用戶名%」)不工作

$username=shell_exec("echo %username%"); //Give Qsr042 
$Name=mysqli_fetch_array(mysqli_query($db,'SELECT * FROM user WHERE Login like "'.$username.'"'))['Name']; //Doesn't work 

但是當我做一個echo gettype($Name);,它說,它是NULL。

在MySQL我有 'Qsr042' 作爲登錄,因爲如果我的查詢是:

$Name=mysqli_fetch_array(mysqli_query($db,'SELECT * FROM user WHERE Login like "Qsr042"'))['Name']; //Works 

現在它只是工作。一切都是一個字符串,所以它應該工作... 我錯過了什麼?

+0

對於MySQL的轉義的字符串,應使用單引號。 – Jens

+0

不起作用...但感謝您的回答 – Hearner

+0

您是否知道mysqli錯誤(http://php.net/manual/de/mysqli.error.php)方法? – Burki

回答

0

我知道它爲什麼不起作用。我用$username=trim(shell_exec('echo %username%'))它工作。我不知道爲什麼,但我不會抱怨。感謝您試圖幫助我

0

shell_exec將執行shell命令而不是PHP函數 例如,

$ output = shell_exec('ls -lart'); echo「

$output
」;

+0

但是echo也是shell命令 – Jens

+0

'$ output = shell_exec('ls -lart');回聲「$輸出」;'不返回任何東西。 'echo gettype($ output)'爲NULL – Hearner

0

因爲您在最後得到了回報。

做一個rtrim()

$username=shell_exec("echo %username%"); //Give Qsr042 (with \r\n) 
$username=rtrim($username); //Give Qsr042 
$Name=mysqli_fetch_array(mysqli_query($db,'SELECT * FROM user WHERE Login like "'.$username.'"'))['Name'];