2017-07-04 124 views
0

我有很奇怪的問題。我想運行mysql查詢,因爲它顯示在下面,但它不起作用。與數據庫的連接成功,INSERT查詢也可以,因爲當我直接在phpmyadmin控制檯中運行它時,它可以工作,但它在PHP代碼中不起作用。MySQL數據庫插入

你能告訴我我錯過了什麼嗎?

$servername = "localhost"; 
$username = "admin"; 
$password = "admin123"; 
$dbname = "database1"; 

$conn = mysqli_connect($servername, $username, $password, $dbname); 

if (!$conn) { 
    die("Connection failed: " . mysqli_connect_error()); 
} 

$sql = "INSERT INTO last_visit (ip, lastvisit) VALUES ('123', '123')"; 
+2

簡單,你不執行查詢。 –

+1

執行$ sql就是了。 $ mysqli->查詢(SQL $); –

+3

您已經在使用支持**準備語句的API,並且使用有界變量輸入,您應該使用帶佔位符(準備語句)的參數化查詢來保護數據庫免受[SQL注入](http://stackoverflow.com/q/60174 /)! 開始使用['mysqli :: prepare()'](http://php.net/mysqli.prepare)和['mysqli_stmt :: bind_param()'](http://php.net/mysqli-stmt .bind-PARAM)。即使這些值*當前*是靜態的 - 他們最可能稍後改變,我認爲? – Qirel

回答

3

您需要運行您的$ sql,因爲現在您的$ sql只是一個字符串,它什麼也不做。

補充一點:

if ($conn->query($sql) === TRUE) { 
    echo "New record created successfully"; 
} else { 
    echo "Error: " . $sql . "<br>" . $conn->error; 
} 
+2

不要試圖避免像'=== TRUE'這樣的事情,它會設置壞習慣。在這種情況下'if($ conn-> query(...))'就足夠了。 – tadman