【发布时间】:2018-07-28 21:50:51
【问题描述】:
我试图了解为什么我的插入返回 false 且未找到结果。
$mysql_link=mysqli_connect(host,user,dbpswd,dbname);
if (mysqli_connect_errno()){echo "Failed to connect to MySQL: " . mysqli_connect_error();} // Never shows
mysqli_set_charset($mysql_link,"utf8");
...
echo $TableName; // Outputs correct table name
echo $flds; // Outputs correct field names, didn't include id field, as auto generated
field1, field2, field3, field4, field5, field6, field7, field8@2x, field9, field10, field11
echo $str; // Outputs correct field values, didn't include id value
'***', '0', '0.0', '2018-07-28', '16:42:00', '0.00', 'you@yoursite.com', '***', '../rw_common/plugins/stacks/myimage.png', 'https://www.google.com', '***'
$query="INSERT INTO ".$TableName."(".$flds.") VALUES (".$str.")";
$mysql_result = mysqli_query($mysql_link,$query);
if ($mysql_result->num_rows > 0) {echo 'record found';}
else {echo 'query ok but no results found';} // Outputs this line !
if ($mysql_result===false) // Resolves to false
还有什么我可以检查的以及如何解决这个问题?
更新1:
echo $query: Outputs this:
INSERT INTO mytable3(field1, field2, field3, field4, field5, field6, field7, field8@2x, field9, field10, field11) VALUES ('***', '0', '0.0', '2018-07-28', '16:55:00', '0.00', 'you@yoursite.com', '***', '../rw_common/plugins/stacks/myimage.png', 'https://www.google.com', '***')
更新2:
echo $query:
INSERT INTO mytable3(`field1`, `field2`, `field3`, `field4`, `field5`, `field6`, `field7`, `field8@2x`, `field9`, `field10`, `field11`) VALUES ('***', '0', '0.0', '2018-07-28', '17:15:00', '0.00', 'you@yoursite.com', '***', '../rw_common/plugins/stacks/myimage.png', 'https://www.google.com', '***')
【问题讨论】:
-
echo $query;并在 phpmyadmin 中运行它(或直接在数据库上)。还有,不是$mysqli_result->num_rows()吗? -
即使没有直接输入,当你有这么多函数将变量绑定到查询时,你仍然应该避免它。没有理由马虎。如果某些内容通过引用自动生成,并破坏了您的查询怎么办?
-
if (!$mysql_result) { echo mysqli_error($mysql_link); }。我的猜测是它与field8@2x有关。 -
还有你的实际列名。如果有任何保留或包含特殊字符,则需要将它们封装在反引号中。
标签: php