Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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
Mysql没有插入定义的值_Mysql_Session - Fatal编程技术网

Mysql没有插入定义的值

Mysql没有插入定义的值,mysql,session,Mysql,Session,我的字段modelNumber设置为null,我正在通过最后一个查询执行更新。 您认为由于默认值为null,因此不允许插入吗 我的表格结构: session_start(); if(!$_SESSION['user_id']) { $_SESSION['user_id'] = rand(1, 1000000); include 'database_connect.php'; mysql_query('INSERT INTO product_views

我的字段modelNumber设置为null,我正在通过最后一个查询执行更新。 您认为由于默认值为null,因此不允许插入吗

我的表格结构:

session_start(); 
    if(!$_SESSION['user_id'])
    { 
    $_SESSION['user_id'] = rand(1, 1000000); 


    include 'database_connect.php';

mysql_query('INSERT INTO product_views (user_session_id) 
             VALUES 
           ('.$_SESSION['user_id'].')'); 

         } 

$productid = $_GET['name'];

   $query = 'SELECT * FROM product_views WHERE user_session_id = '.$_SESSION['user_id'].''; 
   $result = mysql_query($query); 

  while ($row = mysql_fetch_array($result))
{ 

mysql_query('UPDATE product_views SET modelNumber="'.$productid.'" WHERE                  user_session_id="'.$_SESSION['user_id'].'"');


}
我很困惑:

CREATE TABLE `product_views` (
  `id` int(10) DEFAULT NULL,
  `user_session_id` int(11) DEFAULT NULL,
  `product_id` varchar(100) DEFAULT NULL,
  `view_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  `modelNumber` varchar(...
如果您甚至没有使用
$row
,为什么要循环使用此结果集

编辑:我认为这是您真正想要做的:

$query = 'SELECT * FROM product_views WHERE user_session_id = '.$_SESSION['user_id'].''; 
$result = mysql_query($query);

while ($row = mysql_fetch_array($result))
{ 
  mysql_query('UPDATE product_views SET modelNumber="'.$productid.'" WHERE                  user_session_id="'.$_SESSION['user_id'].'"');    
}

您是否尝试过使用测试数据来消除您正在使用的会话变量成为问题的可能性?是的,它确实将会话id插入到数据库中,但不允许我插入$productid。我没有收到mysql错误,它只是不做任何事情。错误消息是什么?SELECT是否返回任何数据?您是否尝试单独运行SQL更新?您需要提供更多详细信息。任何$\u GET['name']都肯定会返回一个值?是的,$\u GET['name']正在工作我的逻辑是从数据库获取会话id,并根据会话更新记录id@RPM看到我对评论的补充,非常感谢
session_start(); 
if(!$_SESSION['user_id'])
{
  // Get the user ID
  $_SESSION['user_id'] = rand(1, 1000000); 
  require_once('database_connect.php');

  // Get the model number and escape it to prevent SQL injection
  $model_number = mysql_real_escape_string($_GET['name']);

  // Insert a row that associates the user_id with the model number
  mysql_query("INSERT INTO product_views (user_session_id,modelNumber) VALUES('{$_SESSION['user_id']}', '$model_number')"); 
}