PHP试图向sql发送单独的日期和时间变量
我试图向mysql数据库发送两个独立的变量,一个用于日期,一个用于时间。目前,这两个变量都是字符串,mysql列的格式为日期和时间类型。在sql查询中,我应该发送哪些变量 编辑:添加错误 致命错误:未捕获的异常“PDOException”带有消息 'SQLSTATE[23000]:完整性约束冲突:1452无法添加或 更新子行:外键约束失败(jk497.1), 约束预订\ ibfk\ U 1外键(PerfDate、PerfTime)引用 性能(PerfDate,PerfTime)),在 /home/cuc/jk497/public_html/bookingReceipt.php,第58行 我的代码PHP试图向sql发送单独的日期和时间变量,php,sql,date,time,formatting,Php,Sql,Date,Time,Formatting,我试图向mysql数据库发送两个独立的变量,一个用于日期,一个用于时间。目前,这两个变量都是字符串,mysql列的格式为日期和时间类型。在sql查询中,我应该发送哪些变量 编辑:添加错误 致命错误:未捕获的异常“PDOException”带有消息 'SQLSTATE[23000]:完整性约束冲突:1452无法添加或 更新子行:外键约束失败(jk497.1), 约束预订\ ibfk\ U 1外键(PerfDate、PerfTime)引用 性能(PerfDate,PerfTime)),在 /home
$time = "17:00:00";
$sql = "insert into Booking values (':id', ':date', ':time', ':fullName', ':email', ':rowNum', ':numSeats', ':bookedSeats');";
$handle = $conn->prepare($sql);
$handle->execute(array(':id' => $_SESSION['id'], ':date' => $SESSION['date'], ':time' => $time, ':fullName' => $_SESSION['fullName'], ':email' => $_SESSION['email'], ':rowNum' => $seatIndex, ':numSeats' => $_SESSION['numSeats'], ':bookedSeats' => $_SESSION['bookedSeats']));
从示例中,我将首先更改代码,您必须:
$sql = "insert into Booking ('id','date','time','fullName','email','rowNum','numSeats','bookedSeats') values (:id,:date,:time,:fullName,:email,:rowNum,:numSeats,:bookedSeats)";
$handle = $conn->prepare($sql);
$handle->bindParam(':id',$_SESSION['id']);
$handle->bindParam(':date',$SESSION['date']);
$handle->bindParam(':time',$time);
$handle->bindParam(':fullName',$_SESSION['fullName']);
$handle->bindParam(':email',$_SESSION['email']);
$handle->bindParam(':rowNum',$seatIndex);
$handle->bindParam(':numSeats',$_SESSION['numSeats']);
$handle->bindParam(':bookedSeats',$_SESSION['bookedSeats']);
$handle->execute();
需要考虑的事项:
insert into table () values ();
insert into table values (); //is what you had (this is not correct and will never work afaik)
bind_param($_SESSION['id'],$SESSION['date'],$time,$_SESSION['fullName'],$_SESSION['email'],$seatIndex,$_SESSION['numSeats'],$_SESSION['bookedSeats'])
$sql = "insert into Booking values (':id', ':date', ':time', ':fullName', ':email', ':rowNum', ':numSeats', ':bookedSeats');";
进入
到目前为止你试过什么?最好添加一些代码和错误,以及您所期望的。阅读并查看如何改进您的问题。Glavic,我尝试将它们作为字符串传递,sql数据库会对其进行检测:(@davejal我从sql获得的错误消息如下:致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[23000]:完整性约束冲突:1452无法添加或更新子行:外键约束失败(
jk497
Booking
,约束Booking\u ibfk\u 1
外键(PerfDate
,PerfTime
)引用Performance
(PerfTime
)'请在第58行的/home/cuc/jk497/public_html/bookingcreceipt.php中添加足够的结构,以便我们能够帮助任何人further@davejal处理它时,很难以可读的方式发布代码^^^更改为您的建议,现在我得到了错误:致命错误:调用未定义的方法PDOStatement::bind_param()在第42行的/home/cuc/jk497/public_html/bookingReceipt.php中对不起,我给了你mysqli的例子,会马上将它改为pdo回到你开始时的样子,用我上一次的编辑修改它。我还将bind_param改为bindParam,mysqli和pdo之间的区别,所以现在你不应该再根据你的建议得到这个错误了n关于返回到我的原始代码(并在将sql列标题更改为实际名称后),我设法使其正常工作。感谢您的帮助!
$sql = "insert into Booking (id,date,time,fullName,email,rowNum,numSeats, bookedSeats) values (:id,:date,:time,:fullName,:email,:rowNum,:numSeats, :bookedSeats)";