1
我有這樣的困境和頭痛,我正在使用日期在PHP和Mysql中工作。如何使用php變量?
在Workbench和phpmyadmin的能正常工作並返回我一些行
SELECT * FROM reserva WHERE STR_TO_DATE('2017-04-07 19:00:00' , '%Y-%m-%d %H:%i:%s') BETWEEN fechaini AND fechafin
凡fechafin和fechaini有日期時間字段,在PHP我這樣做INSERT,它工作正常,而我填寫與DB這個。
public function storeReserva($fechaini) {
$uuid = uniqid('', true);
$stmt = $this->conn->prepare("INSERT INTO reserva(unique_id, fechaini, fechafin) VALUES(?, ? , ? + INTERVAL 2 HOUR)");
$stmt->bind_param("sss", $uuid, $fechaini, $fechaini);
$result = $stmt->execute();
$stmt->close();
// check for successful store
if ($result) {
$stmt = $this->conn->prepare("SELECT * FROM reserva WHERE unique_id = ?");
$stmt->bind_param("s", $uuid);
$stmt->execute();
$reserva = $stmt->get_result()->fetch_assoc();
$stmt->close();
return $reserva;
} else {
return false;
}
}
我想驗證是否領域
public function storeReserva2($fechaini) {
$stmt1 = $this->conn->prepare("SELECT * FROM reserva WHERE STR_TO_DATE('.$fechaini' , '%Y-%m-%d %H:%i:%s') BETWEEN fechaini AND fechafin");
$result1 = $stmt1->execute();
$stmt1->close();
if ($result1 !== null)
{
$uuid = uniqid('', true);
$stmt = $this->conn->prepare("INSERT INTO reserva(unique_id, fechaini, fechafin) VALUES(?, ? , ? + INTERVAL 2 HOUR)");
$stmt->bind_param("sss", $uuid, $fechaini, $fechaini);
$result = $stmt->execute();
$stmt->close();
// Revisa si se hizo la reserva con su id unica
if ($result) {
$stmt3 = $this->conn->prepare("SELECT * FROM reserva WHERE unique_id = ?");
$stmt3->bind_param("s", $uuid);
$stmt3->execute();
$reserva = $stmt3->get_result()->fetch_assoc();
$stmt3->close();
return $reserva;
}
聲明不工作的任何行中的新fechaini心不是,它從零無論日期是返回的東西diferent。我猜我正在使用PHP變量$ fechaini錯誤,如果你能幫助我正確的語法。
PD:我有和無點(fechaini $)我不是有點兒啞 (我看不到什麼回報sentente,我使用過Android Studio測試...是有辦法看看PHP的回聲或打印什麼?我不是一個先進的,甚至不是一箇中級的php用戶。)
爲什麼你'STR_TO_DATE'什麼已經是正確的格式? – tadman
我讀過,需要使用「之間」,所以它會將其作爲日期讀取 –
我只是想正確的方式來使用我從我的應用獲得的$ fechaini變量,變量有deyyyy-mm-dd HH:mm :ss格式,我用它來插入。 –