這是用普通MySQL
,請取我做什麼有一個良好的外觀,這是不建議再使用mysql_*
功能,因爲它們已被棄用。注意引用$input
?
<?php
function insert_what_i_do($user_id, $input) {
$input = mysql_real_escape_string($input);
$query = mysql_query("SELECT `user_id` FROM `profile` WHERE `user_id` = '".(int)$user_id."'");
$num = mysql_num_rows($query);
if($num) {
$query = mysql_query("UPDATE `profile` SET `what_i_do` = '".$input."' WHERE `user_id` = '".(int)$user_id."'");
} else {
$query = mysql_query("INSERT INTO `profile` (`user_id`, `what_i_do`) VALUES ('".(int)$user_id."', '".$input."')");
}
}
?>
你需要學會使用PDO:
<?php
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=UTF-8', 'username', 'password', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
function insert_what_i_do($user_id, $input) {
global $db;
$stmt = $db->query("SELECT `user_id` FROM `profile` WHERE `user_id` = :user_id");
$stmt->execute(array(':user_id' => $user_id));
$num = $stmt->rowCount();
if($num) {
$stmt = $db->query("UPDATE `profile` SET `what_i_do` = :input WHERE `user_id` = :user_id");
$stmt->execute(array(':user_id' => $user_id, ':input' => $input));
} else {
$stmt = $db->query("INSERT INTO `profile` (`user_id`, `what_i_do`) VALUES (:user_id, :input)");
$stmt->execute(array(':user_id' => $user_id, ':input' => $input));
}
}
?>
請,不要使用'mysql_ *'函數來獲取新代碼。他們不再被維護,社區已經開始[棄用流程](http://goo.gl/KJveJ)。請參閱[**紅框**](http://goo.gl/GPmFd)?相反,您應該瞭解[準備好的語句](http://goo.gl/vn8zQ)並使用[PDO](http://php.net/pdo)或[MySQLi](http://php.net/ mysqli的)。如果你不能決定,[本文](http://goo.gl/3gqF9)將有助於選擇。如果你關心學習,[這是一本很好的PDO教程](http://goo.gl/vFWnC)。 – PeeHaa
當你說*不工作*你是什麼意思?任何錯誤? – Fluffeh
那麼你得到的錯誤是什麼?它是SELECT,INSERT還是UPDATE? – andrewsi