【问题标题】:Address inputs and arrays地址输入和数组
【发布时间】:2019-09-08 03:53:10
【问题描述】:

我已经设置了我的 phpmyadmin 并且一切正常,但是我遇到了一个我从未遇到过的问题,我试图研究它但我找不到解决方案。

问题是我有 3 个单独的输入框供用户输入他们的地址,如下所示: ![1]: https://imgur.com/mpM61Ny "输入框"。

这是部分代码:

$Line1 = $_POST['FirstLine']  ;
$Line2 = $_POST['City']  ;
$Line3 = $_POST['Postcode']  ;
$Array = array([$Line1] , [$Line2] , [$Line3]);
$Address = implode(', ' , $Array);

$sql = "INSERT INTO CT_expressedInterest (forename, surname ,  email , 
landLineTelNo , mobileTelNo, postalAddress, catID , sendMethod  ) VALUES 
('$forename' ,'$surname' ,'$email' ,'$landLineTelNo' ,'$mobileTelNo' 
,'$Address' ,'$catID' ,'$sendMethod' )";

echo $Address ;

...

我总是收到错误“数组到字符串的转换”

这些是我在数据库中的结果:

![1]:https://i.imgur.com/vAfxAeM.png“结果”

【问题讨论】:

  • 警告:您对SQL Injections 持开放态度,应该真正使用参数化的prepared statements,而不是手动构建查询。它们由PDOMySQLi 提供。永远不要相信任何类型的输入,尤其是来自客户端的输入。即使您的查询仅由受信任的用户执行,you are still in risk of corrupting your data
  • 跟phpMyAdmin有什么关系?
  • 在 phpMyAdmin 中显示为 'Array, Array, Array' 而不是 'street name, city, postcode' 等值
  • 是的,但这并不意味着您应该用它来标记您的问题。使用 SQL 或实际数据库的名称,即 MySQL。

标签: php phpmyadmin


【解决方案1】:
$Line1 = $_POST['FirstLine']  ;
$Line2 = $_POST['City']  ;
$Line3 = $_POST['Postcode']  ;
$Array = array($Line1 , $Line2 , $Line3);
$Address = implode(', ' , $Array);

$sql = "INSERT INTO CT_expressedInterest (forename, surname ,  email , 
landLineTelNo , mobileTelNo, postalAddress, catID , sendMethod  ) VALUES 
('$forename' ,'$surname' ,'$email' ,'$landLineTelNo' ,'$mobileTelNo' 
,'$Address' ,'$catID' ,'$sendMethod' )";

echo $Address ;

//去掉$array中的方括号

【讨论】:

    【解决方案2】:

    尝试将$Array = array([$Line1], [$Line2], [$Line3]);替换为$Array = array($Line1, $Line2, $Line3);

    【讨论】:

    • 我刚试过你的代码,我说的去掉括号后没有错误。
    • 致命错误:函数名必须是第22行的字符串
    • 第 22 行 $Address = implode(', ' , $Array);
    • 您还需要删除 SQL '$Address' 中 $address 周围的引号
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 2011-08-24
    • 2013-11-02
    相关资源
    最近更新 更多