gpt4 book ai didi

php - MySQL/php INSERT 语句显示不可预测的结果(无插入)

转载 作者:行者123 更新时间:2023-11-29 09:11:57 25 4
gpt4 key购买 nike

所有数据都在通过,因为我已经反复进行了充分的测试以确保其完整。我遇到的问题是我的 INSERT 语句:

<?php
$db_name = "db";
$connection = mysql_connect('localhost','root','') or die(mysql_error());
$db = mysql_select_db($db_name,$connection) or die(mysql_error());
$sql = "INSERT INTO badges (id,company_name,company_address,company_city,company_state,company_zip, badge_name, badge_title) VALUES ";
for($i = 0; $i < count($_POST['badge_name']); $i++) {
$sql = "(
$_SESSION[company_name],
$_SESSION[company_address],
$_SESSION[company_city],
$_SESSION[company_state],
$_SESSION[company_zip],
".$_POST['badge_name'][$i].",
".$_POST['badge_title'][$i].")";}
$result = mysql_query($sql) or die(mysql_error());
echo print_r($sql);
?>

我的 $sql print_r() 是:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Test Company Name, 1224 Adams Ave, Portland,  Oregon, 97128, Bill Smith, W' at line 2

我的表中没有插入任何数据。我已经验证和测试了用户/通行证等。一切正常。

为了更好地衡量,这是我的数组输出,显示所有数据都按预期传递。

迈克·琼斯
所有者
测试公司名称
1224 Adams Ave
波特兰
俄勒冈
97128

比尔·史密斯< br/> worker
测试公司名称
1224 Adams Ave
波特兰
俄勒冈
97128

我想我在这里错过了一些愚蠢的简单的东西,但刚刚花了 4-5 个小时就开始发疯了!感谢您对我的无知有任何见解!

这是我的表转储供引用:

CREATE TABLE IF NOT EXISTS `badges` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`company_name` varchar(255) NOT NULL,
`company_address` varchar(255) NOT NULL,
`company_city` varchar(100) NOT NULL,
`company_state` varchar(25) NOT NULL,
`company_zip` varchar(12) NOT NULL,
`badge_name` varchar(100) NOT NULL,
`badge_title` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

最佳答案

这将起作用,注意 sql concat ,用于多次插入

    <?php 
function cleanit($input){
return mysql_real_escape_string(preg_replace('/[^a-zA-Z0-9\?.,_ -]/s', '', $input));
}
$db_name = "db";
$connection = mysql_connect('localhost','root','') or die(mysql_error());
$db = mysql_select_db($db_name,$connection) or die(mysql_error());
$sql = "INSERT INTO badges (id,company_name,company_address,company_city,company_state,company_zip, badge_name, badge_title) VALUES ";
for($i = 0; $i <= count($_POST['badge_name']); $i++) {


$sql .= '("","'.cleanit($_SESSION['company_name']).'",
"'.cleanit($_SESSION['company_address']).'",
"'.cleanit($_SESSION['company_city']).'",
"'.cleanit($_SESSION['company_state']).'",
"'.cleanit($_SESSION['company_zip']).'",
"'.cleanit($_POST['badge_name'][$i]).'",
"'.cleanit($_POST['badge_title'][$i]).'")';
if($i<count($_POST['badge_name'])){$sql .=',';}
}
$result = mysql_query($sql) or die(mysql_error());
echo print_r($sql);
?>

关于php - MySQL/php INSERT 语句显示不可预测的结果(无插入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5321071/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com