<?php
// Create connection
$DB=mysqli_connect("88.80.185.241","Test","","Test");
// Check connection
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
} else{
echo "Connected";
echo "<br>";
}
//
$Table = mysqli_query($DB, "SELECT * FROM TBL_Time");
while($Row = mysqli_fetch_array($Table)){
echo "Date: " . $Row['Date'] . " | Time: " . $Row['Time'];
echo "<BR>";
}
$Row = mysqli_fetch_array($Table);
$Date = date("d-m-Y");
$Time = time();
echo "Date: " . $Date . " | Time: " . $Time;
$Insert = "INSERT INTO TBL_Time (Date, Time) VALUES (:D, :T)";
$PreQuery = $DB->prepare($Insert);
$PreQuery->bind_param(':D', $Date);
$PreQuery->bind_param(':T', $Time);
$PreQuery->execute();
?>
为什么插入不工作?我可以阅读数据库但无法插入。我检查了特权,看起来很好。
我尝试过移动的东西,但没有任何地方
答案 0 :(得分:4)
您正在使用带有:
而不是?
的PDO样式占位符语法以及s
参数来告诉它它是绑定中的字符串。
这两种类型的占位符不会相互混合/互换。
$Insert = "INSERT INTO TBL_Time (Date, Time) VALUES (?, ?)";
$PreQuery = $DB->prepare($Insert);
$PreQuery->bind_param('s', $Date);
$PreQuery->bind_param('s', $Time);
阅读两者及其差异:
<强> 脚注: 强>
引用法希姆:
使用
DATETIME
类型的一个变量,而不是varchar
类型的两个变量
答案 1 :(得分:0)
这是不正确的,因为$ DB不是对象,而是您将其用作对象! (仅在使用关键字new时才创建对象)
$Insert = "INSERT INTO TBL_Time (Date, Time) VALUES (:D, :T)";
$PreQuery = $DB->prepare($Insert);
$PreQuery->bind_param(':D', $Date);
$PreQuery->bind_param(':T', $Time);
$PreQuery->execute();
所以写下来代替上面的代码:
$Date = mysql_escape_string($Date);
$Time = mysql_escape_string($Time);
mysqli_query($DB,"INSERT INTO TBL_Time (Date, Time) VALUES ($Date, $Time)");