Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP试图向sql发送单独的日期和时间变量_Php_Sql_Date_Time_Formatting - Fatal编程技术网

PHP试图向sql发送单独的日期和时间变量

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

我试图向mysql数据库发送两个独立的变量,一个用于日期,一个用于时间。目前,这两个变量都是字符串,mysql列的格式为日期和时间类型。在sql查询中,我应该发送哪些变量

编辑:添加错误

致命错误:未捕获的异常“PDOException”带有消息 'SQLSTATE[23000]:完整性约束冲突:1452无法添加或 更新子行:外键约束失败(jk497.1), 约束预订\ ibfk\ U 1外键(PerfDate、PerfTime)引用 性能(PerfDate,PerfTime)),在 /home/cuc/jk497/public_html/bookingReceipt.php,第58行

我的代码

$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)";