dongtao6842 2016-09-22 15:10
浏览 42
已采纳

PHP PDO向MySQL插入行查询

I have an insert query which work fine but there is something that I can't understand !

My query :

$query = $db -> prepare ("INSERT INTO table (data_1, data_2, data_3) 
VALUES (:data_1, :data_2, :data_3)");

if ($query -> execute (array (":date_1" => $date_1, ":data_2" => $data_2, ":data_3" => $data_3)) == true AND ($query -> rowCount () > 0))
{
    echo "Success";
}
else
{
    echo "Failed";
}

This will return "Success" every time but insert one row into the database every a few minutes ! (Even if I try to refresh the page 1000 time, I will get "Success" but no new row in the database)

I can't find out where is the problem and I didn't find any answer for my problem while searching over internet !

Is there any way else to check if row has been inserted into the database correctly ?

Update :

I just found that when I use different URL like (example.com/?data_1=data1) and after (example.com/?data_1=data2), it work great and insert row to the database !

But when I try to use same URL again, the row will not be inserted for about 2 or 3 minutes !

Update 2 :

After working more than 10 hours on the scripts I just thought that maybe it's because of Varnish Cache Server that I use on my server !

Is that possible that Varnish make this problem because of caching pages and so the PHP script doesn't run because it serve by Varnish ?

*I have to check it next week when I am @ home because I don't have access to the server from other networks !

So I just like to know if there is any chance that disabling Varnish resolve this problem ? Because I don't have much experience on Varnish !

Update 3 :

I just disabled Varnish and it work fine, about using Varnish, Is there any way to configure Varnish to work better with dynamic pages ?

*I think but i'm not sure if Varnish work like that with dynamic pages, it can also make some security issue too ! I didn't check anything and i'm not an expert of using Varnish either but with my understanding of PHP I think it's not a good idea to use Varnish for dynamic pages !

  • 写回答

1条回答 默认 最新

  • douzi7219 2016-09-24 00:14
    关注

    If you have Varnish then yes, it will cache the URL. So if you so example.com/?data_1=data2, the first time it will work because the URL is not cached. The second time Varnish will return the contents of the page and your server will not be called, so the PHP will not "run". You can either turn of Varnish (which I would only recommend if your website does not have many visitors) or use POST and have POST be a pass in your vcl or have something identifiable in your GET for the function you always want to have run (and then do a pass for that something identifiable in your vcl).

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵