好吧,我有一个PHP脚本,这里面的语法的UPDATE到一个表在MySQL:正确的语法时才/ methof
mysqli_query($con,"UPDATE ted SET description=$line[5]
WHERE speaker='$speaker' AND event='$event'");
是否有服用点错呢?它运行正常在我scriipt(没有错误的),但是没有更新,即使做:它被称为多次(并具有符合WHERE条件这行)继承人整个脚本
<?php
$contents = file_get_contents('ted_csv.txt');
$con=mysqli_connect("localhost","root","admin","Media2net");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($con,"SELECT * FROM ted");
$i=0;
while($row = mysqli_fetch_array($result))
{
$speaker =$row['speaker'];
$event =$row['event'];
$pattern2 = preg_quote($speaker, '/');
$pattern1 = preg_quote($event, '/');
$pattern1 = "/^.*$pattern1.*\$/m";
$pattern2 = "/^.*$pattern2.*\$/m";
if(preg_match_all($pattern1, $contents, $matches)){
$submatch = implode("\n", $matches[0]);
if (preg_match_all($pattern2, $submatch, $better)){
echo "got match" . $i . "\n";
$line =str_getcsv($better[0][0]);
$a_bool = mysqli_query($con,"UPDATE ted SET description=$line[5]
WHERE speaker='$speaker' AND event='$event'");
if ($a_bool){
echo "got match" . $i . "\n";
}else{
echo "query unsuccesful for match" . $i . "\n";
}
}
}
$i++;
}//end of while loop results
mysqli_close($con);
?>
正如你可以看到比赛应该作为同一个字符串的$speaker and $event
从表特德
拉动,显然有什么东西错了我的语法为每个查询$a_bool
是假的,导致echo "query unsuccessful for match" . $i . "\n"
被称为为每个查询。任何解释我做错了将不胜感激!
试'$ a_bool = mysqli_query($ CON,“UPDATE泰德SET描述= {$线[5]}其中扬声器= '$扬声器' AND event ='$ event'“);''你需要使用{}来引用一个字符串内的外部数组元素或未被取消查询的元素,例如'description =”。$ line [5]。 AND' – Dave
@Dave没有运气,只是增加了'{$ line [5]}'change – brendosthoughts
不要忘记它的字符串也需要在单引号内,正如惠普在下面所说的''{$ line [5 ]}'' – Dave